modules
-------
This maps names to repository directories. The general syntax of each
line is:
MODULE [OPTIONS] [&OTHERMODULE...] [DIR] [FILES]
DIR need not be a top-level project directory - it could be a
subdirectory. If any FILES are specified, the module consists of only
those files from the directory.
An ampersand followed by a module name means to include the expansion of
that module's line in place.
Options:
* -a - This is an "alias" module, meaning it expands literally to
everything after the OPTIONS. In this case, the usual DIR/FILES
behavior is turned off, and everything after the OPTIONS is
treated as other modules or repository directories.
If you use the -a option, you may exclude certain directories from
other modules by putting them after an exclamation point (!). For
example
top_proj -a !myproj/a-subdir !myproj/b-subdir myproj
means that checking out `top_proj' will get all of `myproj' except
`a-subdir' and `b-subdir'.
* -d NAME - Names the working directory NAME instead of the module
name.
* -e PROGRAM - Runs PROGRAM whenever files in this module are
exported.
* -i PROGRAM - Runs PROGRAM whenever files in this module are
committed. The program is given a single argument - the full
pathname in the repository of the file in question. (See Note:commitinfo, Note:loginfo, and Note:verifymsg for more
sophisticated ways to run commit-triggered programs.)
* -o PROGRAM - Runs PROGRAM whenever files in this module are checked
out. The program is given a single argument, the name of the
module.
* -s STATUS - Declares a status for the module. When the modules
file is printed (with cvs checkout -s), the modules are sorted by
module status and then by name. This option has no other effects
in CVS, so go wild. You can use it to sort anything - status,
person responsible for the module, or the module's file language,
for example.
* -t PROGRAM - Runs PROGRAM whenever files in this module are tagged
with cvs rtag. The program is passed two arguments: the name of
the module and the tag name. The program is not used for tag,
only for rtag. I have no idea why this distinction is made. You
may find the taginfo file more useful if you want to run programs
at tag time.
* -u PROGRAM - Runs PROGRAM whenever a working copy of the module is
updated from its top-level directory. The program is given a
single argument, the full path to the module's repository.