NAME
SVN::Dump::Record - A SVN dump record
SYNOPSIS
# SVN::Dump::Record objects are returns 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
. - 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. - 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.
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.
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 & LICENSE
Copyright 2006 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.