NAME
SVN::Dump - A Perl interface to Subversion dumps
VERSION
version 0.08
SYNOPSIS
#!/usr/bin/perluse strict;use warnings;use SVN::Dump;my $file = shift;my $dump = SVN::Dump->new( { file => $file } );# compute some statsmy %type;my %kind;while ( my $record = $dump->next_record() ) {$type{ $record->type() }++;$kind{ $record->get_header('Node-action') }++if $record->type() eq 'node';}# print the resultsprint "Statistics for dump $file:\n"," version: ", $dump->version(), "\n"," uuid: ", $dump->uuid(), "\n"," revisions: ", $type{revision}, "\n"," nodes: ", $type{node}, "\n";print map { sprintf " - %-7s: %d\n", $_, $kind{$_} } sort keys %kind;
DESCRIPTION
An SVN::Dump object represents a Subversion dump.
This module follow the semantics used in the reference document (the file notes/fs_dumprestore.txt in the Subversion source tree):
- •
-
A dump is a collection of records (SVN::Dump::Record objects).
- •
-
A record is composed of a set of headers (a SVN::Dump::Headers object), a set of properties (a SVN::Dump::Property object) and an optional bloc of text (a SVN::Dump::Text object).
- •
-
Some special records (
"delete"records with a"Node-kind"header) recursively contain included records.
Each class has a "as_string()" method that prints its content in the dump format.
The most basic thing you can do with SVN::Dump is simply copy a dump:
use SVN::Dump;my $dump = SVN::Dump->new( { file => 'mydump.svn' } );$dump->next_record; # read the format header$dump->next_record; # read the uuid headerprint $dump->as_string(); # only print the dump headerwhile( $rec = $dump->next_record() ) {print $rec->as_string();}
After the operation, the resulting dump should be identical to the original dump.
METHODS
SVN::Dump provides the following methods:
- new( \%args )
-
Return a new SVN::Dump object.
The argument list is a hash reference.
If the SVN::Dump object will read information from a file, the arguments
"file"is used (as usal,"-"means"STDIN"); if the dump is read from a filehandle,"fh"is used.Extra options will be passed to the SVN::Dump::Reader object that is created.
If the SVN::Dump isn't used to read information, the parameters
"version"and"uuid"can be used to initialise the values of the"SVN-fs-dump-format-version"and"UUID"headers.
- next_record()
-
Return the next record read from the dump. This is a SVN::Dump::Record object.
- version()
- format()
-
Return the dump format version, if the version record has already been read, or if it was given in the constructor.
- uuid()
-
Return the dump UUID, if there is an UUID record and it has been read, or if it was given in the constructor.
- as_string()
-
Return a string representation of the dump specific blocks (the
"format"and"uuid"blocks only).
SEE ALSO
SVN::Dump::Reader, SVN::Dump::Record.
The reference document for Subversion dumpfiles is at: <http://svn.apache.org/repos/asf/subversion/trunk/notes/dump-load-format.txt>
COPYRIGHT
Copyright 2006-2020 Philippe Bruhat (BooK), All Rights Reserved.
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.