The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

SVN::Log - Extract change logs from a Subversion server.

SYNOPSIS

  use SVN::Log;

  my $revs = SVN::Log::retrieve ("svn://host/repos", 1);

  print Dumper ($revs);

DESCRIPTION

SVN::Log retrieves and parses the commit logs from Subversion repositories.

VARIABLES

$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.

FUNCTIONS

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.

The revisions are returned as a reference to an array of hashes. Each hash contains the following keys:

revision

The number of the revision.

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 an svn_log_changed_path_t object from SVN::Core, which allows you to determine what happened to this path. See the description of the action(), copyfrom_path(), and copyfrom_rev() methods in SVN::Core.

author

The author of the revision.

date

The date of this revision.

message

The commit message from this revision.

Alternatively, you can pass retrieve a hash containing the repository, start and end revisions, and a callback function which will be called for each revision, like this:

  retrieve ({ repository => "svn://svn.example.org/repos",
              start => 1,
              end => 2,
              callback => sub { print @_; } });

The callback will be passed a reference to a hash of paths modified, the revision, the author, the date, and the message associated with the revision.

See SVN::Log::Index for the cannonical example of how to do this.

SEE ALSO

SVN::Log::Index

BUGS

Please report any bugs or feature requests to bug-svn-log@rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SVN-Log. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

AUTHOR

The current maintainer is Nik Clayton, <nikc@cpan.org>.

The original author was Garrett Rooney, <rooneg@electricjellyfish.net>. Originally extracted from from SVN::Log::Index by Richard Clamp, <richardc@unixbeard.net>

COPYRIGHT

Copyright 2005 Nik Clayton. All Rights Reserved.

Copyright 2004 Garrett Rooney. All Rights Reserved.

Copyright 2004 Richard Clamp. All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.