Repository storage File permissions
The overall structure of the repository is a directory tree corresponding to the directories in the working directory. For example, supposing the repository is in
/usr/local/cvsroot
here is a possible directory tree (showing only the directories):
/usr
| +--local
| | | +--cvsroot
| | | | | +--CVSROOT
| (administrative files) | +--gnu
| | | +--diff
| | (source code to GNU diff) | | | +--rcs
| | (source code to RCS) | | | +--cvs
| (source code to CVS) | +--yoyodyne
| +--tc
| | | +--man
| | | +--testing
| +--(other Yoyodyne software)
With the directories are history files for each file
under version control. The name of the history file is
the name of the corresponding file with `,v
'
appended to the end. Here is what the repository for
the `yoyodyne/tc
' directory might look like:
$CVSROOT
| +--yoyodyne
| | | +--tc
| | | +--Makefile,v
+--backend.c,v
+--driver.c,v
+--frontend.c,v
+--parser.c,v
+--man
| | | +--tc.1,v
| +--testing
| +--testpgm.t,v
+--test2.t,v
The history files contain, among other things, enough
information to recreate any revision of the file, a log
of all commit messages and the user-name of the person
who committed the revision. The history files are
known as RCS files, because the first program to
store files in that format was a version control system
known as RCS. For a full
description of the file format, see the man
page
rcsfile(5), distributed with RCS, or the
file `doc/RCSFILES
' in the CVS source
distribution. This
file format has become very common---many systems other
than CVS or RCS can at least import history
files in this format.
The RCS files used in CVS differ in a few ways from the standard format. The biggest difference is magic branches; for more information see Magic branch numbers. Also in CVS the valid tag names are a subset of what RCS accepts; for CVS's rules see Tags.
Repository storage File permissions