SVN

Description

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.

Synopsis

use Assure1::Agent::SVN;

my $branch = 'event/default';

my $svn = Assure1::Agent::SVN->load({
  path   => $BaseDir . '/var/checkouts/' . $branch,
  svn    => $BaseDir . '/vendor/svn/bin/svn',
  config => $BaseDir . '/etc/svn/'
});

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

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

Constructor

load

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

load(\%options)

Options

path   -> Path to working copy directory
svn    -> Path to svn executable
config -> Path to svn configuration

Returns

1. Object

Methods

add

Adds a file into repository with optional command arguments. Assumes relative to path. If the file's directory is not under svn control, it is added also.

add($file [, @cmdParams])

added

Returns array of files which are scheduled for addition.

cat

Returns cat of FILE given (svn URL/working copy) and returns raw multi-lined output.

cat($file [, @cmdParams])

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.

checkout

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

checkout($repository)

commit

Commits current changes using MESSAGE as a log message. The changes should be listed in the changes array.

commit($message)

copy

Copy from LOCATION1 to LOCATION2 with optional command arguments (e.g. "-r 123").

copy($location1, $location2 [, @cmdParams])

delete

Schedules single FILE for deletion.

delete($file)

deleted

Returns array of files which are scheduled for deletion.

diff

Diffs the file against the repository.

diff($file)

info

Runs info command on path or given working copy WC and returns output.

info($wc)

export

Exports given repository source to path or given destination. Allows optional command arguments (e.g. -r ###)

export($src [, $dest] [, @cmdParams])

list

Returns list of files for the path or given SRC (URL/working copy) and returns output. Allows optional command arguments (e.g. -R)

list($src [, @cmdParams])

merge

Merge changes to FILE from HEAD to previous REVISION.

merge($file, $revision)

missing

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

modified

Returns array of files which are currently modified.

move

Move OLDFILE to NEWFILE with optional command arguments.

move($oldFile, $newFile [, $message] [, @cmdParams])

prepare_changes

Rolls modified, added and deleted arrays into changes array.

revert

Runs revert command.

status

Runs status command on path or given working copy WC and returns output as array of lines.

status($wc)

svn_import

Imports given SRC to svn DEST. Allows optional command arguments (e.g. -r ###)

svn_import($message, $src, $desc [, @cmdParams])

svn_mkdir

Create svn directory. If DIR is a remote svn url MESSAGE is required.

svn_mkdir($dir [, $message] [, @cmdParams])

unknown

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

update

Updates current working directory from the latest repository contents.

wcLocked

Checks if an svn transaction in progress within the same process by wcLock()

wcLock

Locks svn for transaction

wcUnlock

Unlocks the svn transaction previously locked by wcLock()