NAME

VCS::Version - module for access to a VCS version

SYNOPSIS

    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",
        ;

DESCRIPTION

VCS::Version abstracts a single revision of a file under version control.

METHODS

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.

SEE ALSO

VCS.

COPYRIGHT

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