package SVN::Log; # $Id: Log.pm 729 2006-01-11 08:20:09Z nik $ use strict; use warnings; our $VERSION = 0.03; =head1 NAME SVN::Log - Extract change logs from a Subversion server. =head1 SYNOPSIS use SVN::Log; my $revs = SVN::Log::retrieve ("svn://host/repos", 1); print Dumper ($revs); =head1 DESCRIPTION SVN::Log retrieves and parses the commit logs from Subversion repositories. =head1 VARIABLES =head2 $FORCE_COMMAND_LINE_SVN If this is true SVN::Log will use the command line svn client instead of the subversion perl bindings when it needs to access the repository. =cut our $FORCE_COMMAND_LINE_SVN = 0; =head1 FUNCTIONS =head2 retrieve retrieve('svn://host/repos', $start_rev, $end_rev); Retrieve one or more log messages from a repository. If a second revision is not specified, the revision passed will be retrieved, otherwise the range of revisions from $start_rev to $end_rev will be retrieved. One or both of $start_rev and $end_rev may be given as C
, meaning the most recent (youngest) revision in the repository. To retrieve all the log messages in the repository. retrieve('svn://host/repos', 1, 'HEAD'); To do the same thing, but retrieve the log messages in reverse order (i.e., most recent log message first): retrieve('svn://host/repos, 'HEAD', 1); The revisions are returned as a reference to an array of hashes. Each hash contains the following keys: =over =item revision The number of the revision. =item paths A hashref indicating the paths modified by this revision. Each key is the name of the path modified in this revision. The value is a reference to another hash, with the following possible keys. =over =item action The activity that happened to this path. One of C, C