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::Look - A caching wrapper aroung the svnlook command.

VERSION

Version 0.27

SYNOPSIS

  use SVN::Look;
  my $revlook = SVN::Look->new('/repo/path', -r => 123);
  my $author  = $revlook->author();
  my $msg     = $revlook->log_msg();
  my @added_files   = $revlook->added();
  my @updated_files = $revlook->updated();
  my @deleted_files = $revlook->deleted();
  my @changed_files = $revlook->changed();
  my $file_contents = $revlook->cat('/path/to/file/in/repository');

  my $trxlook = SVN::Look->new('/repo/path', -t => 123);

DESCRIPTION

The svnlook command is the workhorse of Subversion hook scripts, being used to gather all sorts of information about a repository, its revisions, and its transactions. This script provides a simple object oriented interface to a specific svnlook invocation, to make it easier to hook writers to get and use the information they need. Moreover, all the information gathered buy calling the svnlook command is cached in the object, avoiding repetitious calls.

METHODS

new REPO [, WHAT, NUMBER]

The SVN::Look constructor needs one or three arguments:

REPO is the path to the repository.
WHAT must be either '-r' or '-t', specifying if the third argument is a revision number or a transaction number, respectivelly.
NUMBER is either a revision or transaction NUMBER, as specified by WHAT.
author

Returns the author of the revision/transaction.

cat PATH

Returns the contents of the file at PATH. In scalar context, return the whole contents in a single string. In list context returns a list of chomped lines.

changed_hash

Returns a reference to a hash containing information about all file changes occurred in the revision. The hash always has the following keys:

added

A list of files added in the revision.

deleted

A list of files deleted in the revision.

updated

A list of files updated in the revision.

prop_modified

A list of files that had properties modified in the revision.

copied

A hash containing information about each file or diretory copied in the revision. The hash keys are the names of elements copied to. The value associated with a key is a two-element array containing the name of the element copied from and the specific revision from which it was copied.

added

Returns the list of files added in the revision/transaction.

updated

Returns the list of files updated in the revision/transaction.

deleted

Returns the list of files deleted in the revision/transaction.

prop_modified

Returns the list of files that had properties modified in the revision/transaction.

changed

Returns the list of all files added, updated, deleted, and the ones that had properties modified in the revision/transaction.

copied_to

Returns the list of new names of files that were copied in the revision/transaction.

copied_from

Returns the list of original names of files that were copied in the revision/transaction. The order of this list is guaranteed to agree with the order generated by the method copied_to.

date

Returns the date of the revision/transaction.

diff [OPTS, ...]

Returns the GNU-style diffs of changed files and properties. There are three optional options that can be passed as strings:

--no-diff-deleted

Do not print differences for deleted files

--no-diff-added

Do not print differences for added files.

--diff-copy-from

Print differences against the copy source.

In scalar context, return the whole diff in a single string. In list context returns a list of chomped lines.

dirs_changed

Returns the list of directories changed in the revision/transaction.

info

Returns the author, datestamp, log message size, and log message of the revision/transaction.

lock PATH

If PATH has a lock, returns a hash containing information about the lock, with the following keys:

UUID Token

A string with the opaque lock token.

Owner

The name of the user that has the lock.

Created

The time at which the lock was created, in a format like this: '2010-02-16 17:23:08 -0200 (Tue, 16 Feb 2010)'.

Comment

The lock comment.

If PATH has no lock, returns undef.

log_msg

Returns the log message of the revision/transaction.

propget PROPNAME PATH

Returns the value of PROPNAME in PATH.

proplist PATH

Returns a reference to a hash containing the properties associated with PATH.

tree [PATH_IN_REPOS, OPTS, ...]

Returns the repository tree as a list of paths, starting at PATH_IN_REPOS (if supplied, at the root of the tree otherwise), optionally showing node revision ids.

--full-paths

show full paths instead of indenting them.

--show-ids

Returns the node revision ids for each path.

--non-recursive

Operate on single directory only.

uuid

Returns the repository's UUID.

youngest

Returns the repository's youngest revision number.

AUTHOR

Gustavo Chaves, <gnustavo@cpan.org>

BUGS

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

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc SVN::Look

You can also look for information at:

COPYRIGHT & LICENSE

Copyright 2008-2011 CPqD, all rights reserved.

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