English     Español
[Main Index] : Programming : Languages : Perl : CPAN Modules : Development Support
 VCS CPAN (Perl) Module 

Search

 

Categories

VCS::CMSynergy   VCS::Lite  
VCS::Cvs   VCS::PVCS  
VCS::Dir   VCS::Rcs  
VCS::File   VCS::SaVeS  
VCS::Hms   VCS::Version  
VCS::LibCVS   VCS::Vss  

Documents

README 
VCS - Library for generic Version Control System access in Perl (Displayed)
VCS::VCS_dev.pod (VCS_dev - Information for VCS::* developers) 

VCS - Library for generic Version Control System access in Perl


NAME

VCS - Library for generic Version Control System access in Perl


SYNOPSIS

    use VCS;
    $file = VCS::File->new($ARGV[0]);
    print $file->url, ":\n";
    for $version ($file->versions) {
        print $version->version,
              ' was checked in by ',
              $version->author,
              "\n";
    }


DESCRIPTION

VCS is an API for abstracting access to all version control systems from Perl code. This is achieved in a similar fashion to the DBI suite of modules. There are ``container'' classes, VCS::Dir, VCS::File, and VCS::Version, and ``implementation'' classes, such as VCS::Cvs::Dir, VCS::Cvs::File, and VCS::Cvs::Version, which are subclasses of their respective ``container'' classes.

The container classes are instantiated with URLs. There is a URL scheme for entities under version control. The format is as follows:

    vcs://localhost/VCS::Cvs/fs/path/?query=1

The ``query'' part is ignored for now. The path must be an absolute path, meaningful to the given class. The class is an implementation class, such as VCS::Cvs.

The ``container'' classes work as follows: when the new method of a container class is called, it will parse the given URL, using the VCS->parse_url method. It will then call the new of the implementation's appropriate container subclass, and return the result. For example,

    VCS::Version->new('vcs://localhost/VCS::Cvs/fs/path/file/1.2');

will return a VCS::Cvs::Version.

An implementation class is recognised as follows: its name starts with VCS::, and require "VCS/Classname.pm" will load the appropriate implementation classes corresponding to the container classes.


VCS METHODS

VCS->parse_url

This returns a four-element list:

    ($hostname, $classname, $path, $query)

For example,

    VCS->parse_url('vcs://localhost/VCS::Cvs/fs/path/file/1.2');

will return

    (
        'localhost',
        'VCS::Cvs',
        '/fs/path/file/1.2',
        ''
    )

This is mostly intended for use by the container classes, and its interface is subject to change.

VCS->class_load

This loads its given implementation class.

This is mostly intended for use by the container classes, and its interface is subject to change.


VCS::* METHODS

Please refer to the documentation for the VCS::Dir manpage, the VCS::File manpage, and the VCS::Version manpage; as well as the implementation specific documentation as in the VCS::Cvs manpage, the VCS::Rcs manpage.


AVAILABILITY

Much of this information is incorrect, the current up to date version of VCS is held on a different CVS server now, i'm going to make things a little more public and then update the below information - thanks for your patience.

VCS.pm and its friends are available from CPAN. There is a web page at:

    http://www.astray.com/VCS/

as well as a sourceforge project page at:

    http://sourceforge.net/projects/vcs/


MAILING LIST

There is currently a mailing list about VCS. Go to the following webpage to subscribe to it:

    http://www.astray.com/mailman/listinfo/vcs

There is a web archive of the mailing list at:

    http://www.astray.com/pipermail/vcs/

General queries should be made directly to the mailing list.


AUTHORS

Greg McCarroll <greg@mccarroll.org.uk> Leon Brocard


KUDOS

Thanks to the following for patches,

    Richard Clamp
    Pierre Denis
    Slaven Rezic


COPYRIGHT

Copyright (c) 1998-2003 Leon Brocard & Greg McCarroll. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


SEE ALSO

the VCS::Cvs manpage, the VCS::Dir manpage, the VCS::File manpage, the VCS::Rcs manpage, the VCS::Version manpage.

Information

This site is currently in testing, it is not yet operating using the full database. Until it is officially launched you may wish to visit Help-Site Computer Manuals. After launch, this site (HelpSpy) will replace Help-Site. Information about the spider which is currently trawling the Internet looking for links to add to this directory can be found here.
   

©Copyright Nicholas Reynolds 2004