SVN¶
The Agent SVN library provides regular Subversion (SVN) operations on the checkout directory in the simplest form possible, by running the SVN binary directly.
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¶
The Agent SVN library contains the constructor described below.
load¶
Constructs SVN::Agent instance. Loads the current status of the directory specified in the path option.
load(\%options)
Options
path - The path to the working copy directory.
svn - The path to the SVN executable.
config - The path to the SVN configuration.
Returns
1. Object
Methods¶
The Agent SVN library contains the methods described below.
add¶
Adds a file into the repository with optional command arguments. Assumes a relative path. If the file's directory is not under SVN control, it is also added.
add($file [, @cmdParams])
added¶
Returns an array of files scheduled to be added.
cat¶
Returns cat of FILE given (svn URL/working copy) and returns raw multi-lined output.
cat($file [, @cmdParams])
changes¶
Returns an array of files changed for the next commit. You can also modify this array to change the next commit files.
checkout¶
Checks out the working copy from the repository into the directory specified in path.
checkout($repository)
commit¶
Commits the current changes using MESSAGE as a log message. The changes should be listed in the changes array.
commit($message)
copy¶
Copies a file from the first specified location to the second specified location, with optional command arguments (for example, -r 123).
copy($location1, $location2 [, @cmdParams])
delete¶
Schedules the specified file to be deleted.
delete($file)
deleted¶
Returns an array of files scheduled to be deleted.
diff¶
Diffs the file against the repository.
diff($file)
info¶
Runs the info command on path or the working copy and returns output.
info($wc)
export¶
Exports the specified source repository to path or the specified destination, with optional command arguments (for example, -r ###).
export($src [, $dest] [, @cmdParams])
list¶
Returns a list of files in the path or specified source (URL/working copy) and returns output. Allows optional command arguments (for example, -R).
list($src [, @cmdParams])
merge¶
Merges changes to the specified file from HEAD to the previous REVISION.
merge($file, $revision)
missing¶
Returns an array of files missing from the working directory.
modified¶
Returns an array of currently modified files.
move¶
Moves OLDFILE to NEWFILE with optional command arguments.
move($oldFile, $newFile [, $message] [, @cmdParams])
prepare_changes¶
Rolls modified, added, and deleted arrays into the changes array.
revert¶
Runs the revert command.
status¶
Runs the status command on path or the specified working copy and returns the output as an array of lines.
status($wc)
svn_import¶
Imports the specified $src to the SVN $dest, with optional command arguments (for example, -r ###).
svn_import($message, $src, $desc [, @cmdParams])
svn_mkdir¶
Creates an SVN directory. If $dir is a remote SVN URL, $msg is required.
svn_mkdir($dir [, $message] [, @cmdParams])
unknown¶
Returns an array of files which do not exist in the SVN repository.
update¶
Updates the current working directory from the latest repository contents.
wcLocked¶
Checks if an SVN transaction is in progress within the same process by "wcLock".
wcLock¶
Locks SVN for a transaction.
wcUnlock¶
Unlocks the SVN transaction previously locked by "wcLock".