The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

SVN::Agent - simple svn manipulation.

SYNOPSIS

  use SVN::Agent;

  my $sa = SVN::Agent->load({ path => 'my_checkout_dir' });

  # find out modified files
  print join(',', @{ $sa->modified }) . "\n";

  # usual svn operations
  $sa->add('file.pl');
  $sa->commit("Message");

DESCRIPTION

This module provides regular svn operations on check out directory. It tries to do this in a simplest form possible.

All operations are currently performed by running svn binary directly. Thus it is probably unportable.

For a much more powerful way of working with svn repository see SVN::Client.

METHODS

load OPTIONS

Constructs SVN::Agent instance. Loads current status of the directory given by path option.

modified

Returns array of files which are currently modified.

added

Returns array of file which are scheduled for addition.

unknown

Returns array of files which do not exist in svn repository.

deleted

Returns array of files which are scheduled for deletion.

missing

Returns array of files which are missing from the working directory.

changes

Returns array of files which are changes for the next commit. Note that you can also modify this array to change next commit files.

add FILE

Adds a file into repository. If the file's directory is not under svn control, SVN::Agent adds it also.

revert

Runs revert command.

prepare_changes

Rolls modified, added and deleted arrays into changes array.

commit MESSAGE

Commits current changes using MESSAGE as a log message. The changes should be listed in the changes array. Returns list of the output lines.

update

Updates current working directory from the latest repository contents.

remove FILE

Schedules FILE for removal. Note, that it doesn't physically removes the file from the working directory.

diff FILE

Diffs the file against the repository.

checkout REPOSITORY

Checks-out working copy from the REPOSITORY into directory given by path option.

AUTHOR

Boris Sukholitko <boriss@gmail.com>

LICENSE

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

SEE ALSO

SVN::Client, SVN manual.