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. 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 dominique_dumont@grenoble.hp.com --------------------------------------------------------------------- INSTALLATION gunzip -c .tar.gz | tar xvf - cd perl Makefile.PL make test make install