Daizu::Wc::UpdateEditor - Subversion editor for updating database working copies
This Subversion delta editor can be used to receive updates from Subversion and load the new information into Daizu CMS database working copies. For example, to check out data into a fresh, newly created working copy:
my $editor = Daizu::Wc::UpdateEditor->new( cms => $cms, db => $db, wc_id => $wc_id, revnum => $revnum, branch_id => $branch_id, branch_path => $branch_path, ); my $reporter = $cms->ra->do_update($revnum, $branch_path, 1, $editor); $reporter->set_path('', 0, 1, undef); $reporter->finish_report;
This should be used inside a database transaction, so that the changes can be rolled back if anything goes wrong.
The methods called by Subversion are described in the documentation for SVN::Delta::Editor.
Directory and file batons are a reference to a hash containing the following values:
ID number of their entry in the wc_file table.
wc_file
Relative to branch root (same as 'path' value in wc_file table).
If the property 'svn:mime-type' has been set on this file, then this will be the value of it, otherwise undef.
undef
If this is a file and apply_textdelta() has been called on it, there is also a string which will hold the data of the file. It is put in the database when close_file() is called. Otherwise this will be undef.
apply_textdelta()
close_file()
A reference to a hash of all properties set or deleted while the baton was open. It will be undef if no properties have been changed. Used during close_file() and close_directory() to call custom property loaders if appropriate.
close_directory()
True if the content or any properties of a file have been updated. This is used when the file or directory is closed to determine whether the 'modified_at' timestamp should be set.
True if the file or directory was added anew rather than opened.
The file/directory batons are undef for directories which aren't stored in the working copy, but are further up the directory hierarchy, such as 'trunk'.
This software is copyright 2006 Geoff Richards <geoff@laxan.com>. For licensing information see this page:
http://www.daizucms.org/license/
To install Daizu, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Daizu
CPAN shell
perl -MCPAN -e shell install Daizu
For more information on module installation, please visit the detailed CPAN module installation guide.