NAME¶
SVN::Dump::Record - A SVN dump record
SYNOPSIS¶
# SVN::Dump::Record objects are returned by the next_record()
# method of SVN::Dump
DESCRIPTION¶
An "SVN::Dump::Record" object represents a Subversion dump record.
METHODS¶
"SVN::Dump" provides the following gourps of methods:
Record methods¶
- new()
- Create a new empty "SVN::Dump::Record"
object.
- type()
- Return the record type, as guessed from its headers.
The method dies if the record type cannot be determined.
- set_header( $h, $v )
- Set the header $h to the value $v.
- get_header( $h )
- Get the value of header $h.
- set_property( $p, $v )
- Set the property $p to the value $v.
- get_property( $p )
- Get the value of property $p.
- delete_property( @k )
- Delete the
- set_text( $t )
- Set the value of the text block.
- get_text()
- Get the value of the text block.
Inner blocks manipulation¶
A "SVN::Dump::Record" is composed of several inner blocks of various
kinds: "SVN::Dump::Headers", "SVN::Dump::Property" and
"SVN::Dump::Text".
The following methods provide access to these blocks:
- set_headers_block( $headers )
- get_headers_block()
- Get or set the "SVN::Dump::Headers" object that
represents the record headers.
- set_property_block( $property )
- get_property_block()
- Get or set the "SVN::Dump::Property" object that
represents the record property block.
- delete_property( @keys )
- Delete the given properties. Behave like the builtin
"delete()".
- set_text_block( $text )
- get_text_block()
- Get or set the "SVN::Dump::Text" object that
represents the record text block.
- set_included_record( $record )
- get_included_record()
- Some special record are actually output recursiveley by
svnadmin dump. The "record in the record" is stored
within the parent record, so they are parsed as a single record with an
included record.
"get_record()" / "set_record()" give access to the
included record.
According to the Subversion sources (
subversion/libsvn_repos/dump.c), this is a "delete original,
then add-with-history" node. The dump looks like this:
Node-path: tags/mytag/myfile
Node-kind: file
Node-action: delete
Node-path: tags/mytag/myfile
Node-kind: file
Node-action: add
Node-copyfrom-rev: 23
Node-copyfrom-path: trunk/myfile
Note that there is a single blank line after the first header block, and
four after the included one.
- update_headers()
- Update the various "...-length" headers. Used
internally.
You must call this method if you update the inner property or text
blocks directly, or the results of
"as_string()" will be inconsistent.
- has_prop()
- Return a boolean value indicating if the record has a
property block.
- has_text()
- Return a boolean value indicating if the record has a text
block.
- has_prop_only()
- Return a boolean value indicating if the record has only a
property block (and no text block).
- has_prop_or_text()
- Return a boolean value indicating if the record has a
property block or a text block.
- property_length()
- Return the length of the property block.
- text_length()
- Return the length of the text block.
Output method¶
- as_string()
- Return a string representation of the record.
Warning: dumping a record currenly gives back the information that
was read from the original dump. Which means that if you modified the
property or text block of a record, the headers will be inconstent.
ENCAPSULATION¶
When using "SVN::Dump" to manipulate a SVN dump, one should not
directly access the "SVN::Dump::Headers",
"SVN::Dump::Property" and "SVN::Dump::Text" components of
a "SVN::Dump::Record" object, but use the appropriate
"set_...()" and "get_...()" methods of the record object.
These methods compute the appropriate modifications of the header values, so
that the "as_string()" method outputs the correct information after
any modification of the record.
SEE ALSO¶
"SVN::Dump::Headers", "SVN::Dump::Property",
"SVN::Dump::Text".
COPYRIGHT¶
Copyright 2006-2011 Philippe 'BooK' Bruhat, All Rights Reserved.
LICENSE¶
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.