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.
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
implements the 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.