next up previous contents
Next: Basic CVS Commands: A Up: Appendix on Version Control Previous: Appendix on Version Control   Contents


The CVS Repository and Basic Concepts

CVS extends the notion of revision control from a collection of files in a single directory, as in CMS, to a hierarchical collection of directories each containing revision controlled files. For example, two CVS repositories designed to contain the CDF offline software are shown in Fig. 5.

Figure 5: The structure of two CVS repositories, one for run 1 and one for run 2.
\includegraphics [width=4.0in]{two_repositories.eps}

Like CMS groups, CVS collects files together into modules, and allows operations on entire modules. For example, the jet library would be a module. Like a CMS class, CVS allows a collection of specific file versions to have a name, called a tag. CVS labels each file with version numbers, and allows branches and merging as depicted in Fig. 6.

Figure 6: The versions of a particular file along the main trunk of the revision, 1.1, 1.2, 1.3, 1.4 and 1.5 are shown, along with a branch called fixjet, that consists of modifying revision 1.2 into 1.2.2.1 and 1.2.2.2. The branch was merged back into the main trunk after revision 1.4 was complete, giving revision 1.5.
\includegraphics [width=6in]{cvs_revisions.eps}

As its name indicates, CVS encourages concurrent revision by multiple developers in parallel, unlike CMS which is designed for linear revision of reserved files. A script has been written to allow the command reserve in CVS if desired.


next up previous contents
Next: Basic CVS Commands: A Up: Appendix on Version Control Previous: Appendix on Version Control   Contents
Margaret Votava
2001-02-12