ShipIt::VC(3)

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.