The VcsTools-File package is a set of object which enable you to
perform a lot of functions to a Vcs file :
- check-in, check-out, lock, unlock files
- edit (by launching a xemacs gnuclient)
- history analysis (through VcsTools::History)
- keep a cache in a MLDBM file so that a history retrieve is not necessary
each time you start the tool.
Suggested DSLI line:
VcsTools::File bdpO VCS file management tools DDUMONT
Note that only HP HMS and RCS are currently implemented. See below to
port VcsTools to another VCS system.
HMS is part of the HP Softbench CM product.
If this address is reachable from your site, you can get more info on
HMS at:
http://www.hp.com/esy/go/softbench.html
The classes defined in this package are:
- File: This class contains the History and access all other agent
objects which represent the "real" world (Vcs interface, file system
interface, process interface). Note that the objects representing
the "real world" are passed to the constructor of File. So you can
re-define your own "real world" class, instanciate them in your
application and and use them within File without modifying the File
class.
- FileAgent: Class to perform basic file functions such as remove,
chmod...
- HmsAgent: Class which defined the command needed to perform
operation on the HMS database. (such fci, fco ...). Note that only
this class should be re-written on order to provide an access to
other VCS systems.
- RcsAgent: Class which defined the command needed to perform
operation on the RCS database. (such ci, co ...). You may want to
make a diff between HmsAgent and RcsAgent to know what's involved in
adapting VcsTools to another VCS system.
- Process: Tiny module which runs processes (currently in blocking
mode) and returns 1 or 0 according to the result of the sub-process.
Porting VcsTools to another VCS system
--------------------------------------
When creating a File object, you pass it a class name which will be the
interface to the VCS system you want to use.
Hence if you want to use a FOO VCS system, you must:
- create a FooAgent class (check the difference between HmsAgent and
RcsAgent to know what's involved in adapting VcsTools to your VCS
system) which respect the API defined for HmsAgent or RcsAgent.
- Pass the "VcsTools::FooAgent" name to the VcsTools::File constructor.
Et voil�, that's all you need to do.
I'd like people who actually use this module for their application to
drop me a short note about what they're using this module for.
This module was written with perl5.005_03.
See the embedded documentation in the module for more details.
Comments and suggestions are always welcome.
Note that this module is in beta state. Its interface may change (but
I hope not).
Legal mumbo jumbo:
Copyright (c) 1998-1999 Dominique Dumont. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- Dominique Dumont
[email protected]
---------------------------------------------------------------------
INSTALLATION
gunzip -c <dist_file>.tar.gz | tar xvf -
cd <dist_directory>
perl Makefile.PL
make test
make install