Provided by: libsvn-dump-perl_0.05-1_all
SVN::Dump::Record - A SVN dump record
# SVN::Dump::Record objects are returned by the next_record() # method of SVN::Dump
An "SVN::Dump::Record" object represents a Subversion dump record.
"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. Information methods 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.
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.
"SVN::Dump::Headers", "SVN::Dump::Property", "SVN::Dump::Text".
Copyright 2006-2011 Philippe 'BooK' Bruhat, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.