Since CVS was designed to manage multiple projects based in the same repository, it also has a mechanism by which individual projects may be defined as ``modules'', in order to manage the proliferation of subdirectories within the repository. To define the modules, you need to use the ``cvs checkout'' function to get a ``working copy'' of the $CVSROOT/CVSROOT/modules file:
cvs checkout CVSROOT/modules cd CVSROOT
Now you can edit the modules file to contain the specification for any number of modules within the repository, where the first field corresponds to the module name and the second field is the directory path of the source code for that module, relative to $CVSROOT (the DESTDIR of previous cvs import invocations):
234_tree 234_tree tannenbaum cpsc310/tannenbaum class_proj cpsc426/class_proj
Module definitions can be far more flexible and complex than this; see the CVS manual for more info.
When you are finished editing the modules file, use the ``cvs commit'' function to integrate your changes back into the repository, and the ``release -d'' function to delete the working directory:
cvs commit -m ``Updated modules file'' modules cd .. cvs release -d CVSROOT