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).


$url is a VCS URL, of the format:


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.


$url is a version URL. Returns an object of class VCS::Version. This method calls VCS->parse_url to make sense of the URL.


Returns the $url argument to new.


Returns the $version argument to new.


Returns a list of tags applied to this version.


Returns the text of this version of the file.


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.


Returns the name of the user who checked in this version.


Returns the date this version was checked in.


Returns the reason given on checking in this version.


Returns the absolute path of the file to which this version relates.




This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.