Chia-liang Kao (高嘉良)


SVN::Simple::Edit - A simple interface for driving svn delta editors


 my $edit = SVN::Simple::Edit->new
    (_editor => [SVN::Repos::get_commit_editor($repos, "file://$repospath",
                                      '/', 'root', 'FOO', \&committed)],

 $edit->add_directory ('trunk');
 $edit->add_file ('trunk/filea');
 $edit->modify_file ("trunk/fileb", "content", $checksum);
 $edit->delete_entry ("trunk/filec");
 $edit->close_edit ();
 $edit->copy_directory ('branches/a, trunk, 0);


SVN::Simple::Edit wraps the subversion delta editor with a perl friendly interface and then you could easily drive it for describing changes to a tree. A common usage is to wrap the commit editor, so you could make commits to a subversion repository easily.

This also means you can not supply the $edit object as an delta_editor to other API, and that's why this module is named ::Edit instead of ::Editor.

See SVN::Simple::Editor for simple interface implementing a delta editor.


for constructor


The editor that will receive delta editor calls.


Called when parent directory are not opened yet, could be:


Always build parents if you don't open them explicitly.


Always open the parents if you don't create them explicitly.

SVN::Simple::Edit::check_missing ([$root])

Check if the path exists on $root. Open it if so, otherwise create it.


The default root to use by SVN::Simple::Edit::check_missing.


The base path the edit object is created to send delta editor calls.


Do not close files or directories. This might make non-sorted operations on directories/files work.


Note: Don't expect all editors will work with operations not sorted in DFS order.

open_root ($base_rev)
add_directory ($path)
open_directory ($path)
copy_directory ($path, $from, $fromrev)
add_file ($path)
open_file ($path)
copy_file ($path, $from, $fromrev)
delete_entry ($path)
change_dir_prop ($path, $propname, $propvalue)
change_file_prop ($path, $propname, $propvalue)
close_edit ()


Chia-liang Kao <>


Copyright 2003-2004 by Chia-liang Kao <>.

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