NAME
ShipIt::VC -- abstract base class for version control systems
SYNOPSIS
# done for you, elsewhere
... ShipIt::VC->new($conf)
# get your instance from your state handle:
$vc = $state->vc;
# then
$vc->commit($msg);
$vc->tag_version("1.25"[, $msg]);
$vc->exists_tagged_version("1.25"); # 1
$vc->local_diff("ChangeLog"); # returns diff of changelog
OVERVIEW
ShipIt::VC is an abstract base class, with a factory method 'new' to return a subclass instance for the version control system detected to be in use.
Rather than using 'new' directly, you should call your ShipIt::State $state's "vc" accessor method, which returns a memoized (er, singleton) instance of ShipIt::VC->new.
ABSTRACT METHODS
commit($msg);
Commit all outstanding changes in working copy to repo, with provided commit message.
tag_version($ver[, $msg]);
Tag the current version (already committed) as the provided version number.
exists_tagged_version($ver)
Returns true if the given version is already tagged.
local_diff($file)
Returns diff of $file from what's on the server compared to the local on-disk copy.
are_local_diffs
Returns bool, if any files on disk are uncommitted.