NAME
Daizu::Wc::UpdateEditor - Subversion editor for updating database working copies
DESCRIPTION
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
-
ID number of their entry in the
wc_file
table. - path
-
Relative to branch root (same as 'path' value in
wc_file
table). - mime_type
-
If the property 'svn:mime-type' has been set on this file, then this will be the value of it, otherwise
undef
. - data
-
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 whenclose_file()
is called. Otherwise this will beundef
. - props
-
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()
andclose_directory()
to call custom property loaders if appropriate. - changed
-
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.
- added
-
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'.
COPYRIGHT
This software is copyright 2006 Geoff Richards <geoff@laxan.com>. For licensing information see this page: