VCS::Version - module for access to a VCS version
use VCS;die "Usage: $0 file-url\ne.g.: vcs://localhost/VCS::Rcs/file/name/1.2\n"unless @ARGV == 1;my $version = VCS::Version->new(@ARGV);print "Methods of \$version:\n","url: ", $version->url, "\n","author: ", $version->author, "\n","version: ", $version->version, "\n",;
VCS::Version abstracts a single revision of a file under version control. Methods marked with a "*" are not yet finalised/implemented.
VCS::Version->create_new(@version_args) * @version_args is a list which will be treated as a hash, with contents as follow:
@version_args = (name => 'a file name',version => 'an appropriate version identifier',tags => [ 'A_TAG_NAME', 'SECOND_TAG' ],author => 'the author name',reason => 'the reason for the checkin',text => 'either literal text, or a ref to the filename',);
This is a pure virtual method, which must be over-ridden, and cannot be called directly in this class (a "die" will result).
VCS::Version->new($url) $url is a VCS URL, of the format:
vcs://localhost/VCS::Rcs/file/name/1.2
The version is a version number, or tag. Returns an object of class "VCS::Version", or throws an exception if it fails. Normally, an override of this method will call "VCS::Version->init($url)" to make an object, and then add to it as appropriate.
VCS::Version->init($url) $url is a version URL. Returns an object of class "VCS::Version". This method calls "VCS->parse_url" to make sense of the URL.
$version->url Returns the $url argument to "new".
$version->version Returns the $version argument to "new".
$version->tags Returns a list of tags applied to this version.
$version->text Returns the text of this version of the file.
$version->diff($other_version) Returns the differences (in "diff -u" format) between this version and the other version. Currently, the other version must also be a "VCS::Version" object.
$version->author Returns the name of the user who checked in this version.
$version->date Returns the date this version was checked in.
$version->reason Returns the reason given on checking in this version.
$version->path Returns the absolute path of the file to which this version relates. VCS. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.