The $CVSROOT/CVSROOT directory contains the various administrative files. In some ways this directory is just like any other directory in the repository; it contains RCS files whose names end in ‘,v’, and many of the CVS commands operate on it the same way. However, there are a few differences.
For each administrative file, in addition to the RCS file, there is also a checked out copy of the file. For example, there is an RCS file loginfo,v and a file loginfo which contains the latest revision contained in loginfo,v. When you check in an administrative file, CVS should print
cvs commit: Rebuilding administrative file database
and update the checked out copy in $CVSROOT/CVSROOT. If it does not, there is something wrong (see BUGS). To add your own files to the files to be updated in this fashion, you can add them to the checkoutlist administrative file (see checkoutlist).
By default, the modules file behaves as
described above. If the modules file is very large,
storing it as a flat text file may make looking up
modules slow (I’m not sure whether this is as much of a
concern now as when CVS first evolved this
feature; I haven’t seen benchmarks). Therefore, by
making appropriate edits to the CVS source code
one can store the modules file in a database which
ndbm interface, such as Berkeley
db or GDBM. If this option is in use, then the modules
database will be stored in the files modules.db,
modules.pag, and/or modules.dir.
For information on the meaning of the various administrative files, see Administrative files.