Search
Categories
Documents
VCS - Library for generic Version Control System access in Perl
VCS - Library for generic Version Control System access in Perl
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";
}
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.
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.
This loads its given implementation class.
This is mostly intended for use by the container classes, and its
interface is subject to change.
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.
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/
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.
Greg McCarroll <greg@mccarroll.org.uk>
Leon Brocard
Thanks to the following for patches,
Richard Clamp
Pierre Denis
Slaven Rezic
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.
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. |
|