The directory $CVSROOT/CVSROOT contains some administrative files. See Administrative files, for a complete description. You can use CVS without any of these files, but some commands work better when at least the modules file is properly set up.
The most important of these files is the modules file. It defines all modules in the repository. This is a sample modules file.
CVSROOT CVSROOT modules CVSROOT modules cvs gnu/cvs rcs gnu/rcs diff gnu/diff tc yoyodyne/tc
The modules file is line oriented. In its
simplest form each line contains the name of the
module, whitespace, and the directory where the module
resides. The directory is a path relative to
$CVSROOT. The last four lines in the example
above are examples of such lines.
The line that defines the module called ‘modules’ uses features that are not explained here. See modules, for a full explanation of all the available features.
You edit the administrative files in the same way that you would edit any other module. Use ‘cvs checkout CVSROOT’ to get a working copy, edit it, and commit your changes in the normal way.
It is possible to commit an erroneous administrative
file. You can often fix the error and check in a new
revision, but sometimes a particularly bad error in the
administrative file makes it impossible to commit new
revisions. If and when this happens, you can correct
the problem by temporarily copying a corrected administrative file
directly into the
$CVSROOT/CVSROOT repository directory,
then committing the same correction via a checkout of the CVSROOT
module. It is important that the correction also be made via the
checked out copy, or the next checkout and commit to the
<code>CVSROOT</code> module will overwrite the correction that was
copied directly into the repository, possibly breaking things in such
a way as to prevent commits again.