<html> <head> <title>Version Control Requirements</title> </head> <body bgcolor=white> <h2>Version Control Requirements</h2> by Ron Henderson <hr> <h3>I. Introduction</h3> <p>We are all used to working collaboratively on site development and to using the Concurrent Version System (CVS) for managing the code base as the site is programmed. But what about modules that provide access to site content or software management tools? Do we give up version control in this case? Do we have to rewrite the machinery of a system like CVS? Absolutely not. <h3>II. Vision Statement</h3><p> <p>The VC application provides a simple interface to CVS that can be used by any application to add version control capabilities to that application. It also provides procedures to obtain version control information for any file associated with the project, e.g., to display additional information in the page footer or for integration with bug tracking systems. <h3>III. System/Application Overview</h3> <p>The VC application does not have any user pages, just a set of procedures that allow you to access the version control system. Every procedure takes the full pathname of a file on which it is to operate. The public API consist of a number of simple wrappers to corresponding CVS commands. <h3>IV. Use-cases and User-scenarios</h3> <p>Users of the VC application will be developers who need to access file-level version control information from within their applications. <h3>V. Related Links</h3> <ul> <li> <a href=design.html>Design document</a> <li> <a href=http://www.loria.fr/~molli/cvs/doc/cvs_toc.html>CVS Documentation</a> <li> <a href=/vc/admin/tests/>automatic regression test script</a> </ul> </i> <h3>VI.A Requirements: Data Model</h3> <p>None. <h3>VI.B Requirements: User-Level Requirements</h3> <ul> <li>Add a file to the version-control system <li>Get the CVS log for a file <li>Get the CVS status of a file <li>Remove a file from the version-control system <li>Commit a change to CVS <li>Update a file from the CVS repository <li>Checkout a new file revision from the CVS repository <li>Get the location of the CVS repository for the site <li>Get the value of the CVS root for a file <li>Get the date of the last revision of a file <li>Get the CVS revision summary for a file <li>Get the CVS revision number for a file </ul> <h3>VI.C Requirements: Configurable Behavior</h3> <ul> <li>Specify the CVS repository and connection method <li>Specify the location of the CVS executable </ul> <h3>VI.D Requirements: Remote Repositories </h3> <ul> <li>Support pserver connections <li>Support ext connections using ssh </ul> <h3>VII: Implementation Notes</h3> <p>An individual query can be relatively expensive with respect to completion time, particularly if CVS has to go over the network to access information from a remote repository. Therefore, all information managed by the VC application is cached within the server based on the modification time of the corresponding file. <h3>VIII. Revision History</h3> <pre> $Log: requirements.html,v $ Revision 1.1.1.1 2001/04/20 20:51:23 donb Forgot to define binary files before importing, so .gifs were messed up. Revision 1.4 2000/12/08 02:43:20 jfinkler minor change Revision 1.3 2000/12/08 02:37:38 jfinkler some terminological revision Revision 1.2 2000/11/21 07:08:57 ron corrected section labels Revision 1.1.1.1 2000/11/21 07:00:49 ron initial version </pre> <hr> <a href=mailto:ron@arsddigita.com>ron@arsdigita.com</a> </body> </html>