SVK::Editor::Merge - An editor that does merges for the storage editor
$editor = SVK::Editor::Merge->new
( anchor => $anchor,
base_anchor => $base_anchor,
base_root => $fs->revision_root ($arg{fromrev}),
target => $target,
storage => $storage_editor,
%cb,
);
Given the base root and callbacks for local tree, SVK::Editor::Merge forwards
the incoming editor calls to the storage editor for modifying the local tree,
and merges the tree delta and text delta transparently.
- anchor
- The anchor of the target tree.
- target
- The target path component of the target tree.
- base_anchor
- The anchor of the base tree.
- base_root
- The root object of the base tree.
- storage
- The editor that will receive the merged callbacks.
- allow_conflicts
- Close the editor instead of abort when there are conflicts.
- open_nonexist
- open the directory even if cb_exist failed. This is for use in conjunction
with SVK::Editor::Rename for the case that a descendent exists but its
parent does not.
- inspector
- The inspector reflecting the target of the merge.
Since the merger needs to have information about the local tree, some callbacks
must be supplied.
- cb_rev
- Check the revision of the given path.
- cb_conflict
- When a conflict is detected called with path and conflict type as
argument. At this point type can be either 'node' or 'prop'.
- cb_prop_merged
- Called when properties are merged without changes, that is, the
"g" status.
- cb_merged
- Called right before closing the target with changes flag, node type and
ticket.
- cb_closed
- Called after each file close call.
- Tree merge
- still very primitive, have to handle lots of cases