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 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. COPYRIGHT Copyright (c) 1998-2001 Leon Brocard. 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.