man SVK::Editor::Merge () - An editor that does merges for the storage editor

NAME

SVK::Editor::Merge - An editor that does merges for the storage editor

SYNOPSIS

  $editor = SVK::Editor::Merge->new
    ( anchor => $anchor,
      base_anchor => $base_anchor,
      base_root => $fs->revision_root ($arg{fromrev}),
      target => $target,
      storage => $storage_editor,
      %cb,
    );

DESCRIPTION

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.

PARAMETERS

options for base and target tree

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 edito 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.

callbacks for local tree

Since the merger needs to have information about the local tree, some callbacks must be supplied.

cb_exist
Check if the given path exists.
cb_rev
Check the revision of the given path.
cb_conflict
Called when a conflict is detected.
cb_localmod
Called when the merger needs to retrieve the local modification of a file. Return an arrayref of filename, filehandle, and md5. Return undef if there is no local modification.
cb_localprop
Called when the merger needs to retrieve the local modification of a property. Return the property value.
cb_prop_merged
Called when properties are merged without changes, that is, the CWg status.
cb_dirdelta
When CWdelete_entry needs to check if everything to be deleted does not cause conflict on the directory, it calls the callback with path, base_root, and base_path. The returned value should be a hash with changed paths being the keys and change types being the values.
cb_merged
Called right before closing the top directory with storage editor, root baton, and pool.
cb_closed
Called after each file close call.

BUGS

Tree merge
still very primitive, have to handle lots of cases

AUTHORS

Chia-liang Kao <clkao@clkao.org>

COPYRIGHT

Copyright 2003-2005 by Chia-liang Kao <clkao@clkao.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See <http://www.perl.com/perl/misc/Artistic.html>