NAME VCS - Library for generic Version Control System access in Perl SYNOPSIS use VCS; $file = VCS::File->new($ARGV[0]); print $file->name, ":\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 work as follows: when the `new' method of a container class is called, it will cycle through each of the known implementation classes, trying its `new' method with the given arguments until one returns a defined result, which will then be returned. 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. In general, implementation classes' `new' methods must be careful not to return "false positives", by rigorously checking if their arguments conform to their particular version control system. If a method, or an argument to a method makes no sense for a particular implementation, then the implementation may ignore it, but must do so quietly. METHODS VCS->implementations Returns a list of the implementations, in the order in which they will be tried by the container classes. The first time it is called (as determined by whether there are any implementations known), it will search @INC for all compliant implementations. VCS->add_implementations(@implementations) `@implementations' is moved/added to the front of the list, so use this also to set the default or control the order of implementations tried. AVAILABILITY VCS.pm and its friends will be available from CPAN. MAILING LIST There is currently a mailing list about VCS. To subscribe, send a blank message to: vcs-subscribe@astray.com. To talk, send a message to: vcs@astray.com. To unsubscribe, send a blank message to: vcs-unsubscribe@astray.com. General queries should be made directly to the mailing list. COPYRIGHT Copyright (c) 1998/9 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. CHANGES FROM 0.02 Documentation, mostly. Caching still doesn't work with long-lived processes.