Structural Informatics Group (SIG) logo
Home | Projects | Demos | Downloads | Publications | Local Info | About Us | New site
Go to the first, previous, next, last section, table of contents.


User-defined logging

You can customize CVS to log various kinds of actions, in whatever manner you choose. These mechanisms operate by executing a script at various times. The script might append a message to a file listing the information and the programmer who created it, or send mail to a group of developers, or, perhaps, post a message to a particular newsgroup. To log commits, use the `loginfo' file (see section Loginfo). To log commits, checkouts, exports, and tags, respectively, you can also use the `-i', `-o', `-e', and `-t' options in the modules file. For a more flexible way of giving notifications to various users, which requires less in the way of keeping centralized scripts up to date, use the cvs watch add command (see section Telling CVS to notify you); this command is useful even if you are not using cvs watch on.

The `taginfo' file defines programs to execute when someone executes a tag or rtag command. The `taginfo' file has the standard form for administrative files (see section Reference manual for Administrative files), where each line is a regular expression followed by a command to execute. The arguments passed to the command are, in order, the tagname, operation (add for tag, mov for tag -F, and del for tag -d), repository, and any remaining are pairs of filename revision. A non-zero exit of the filter program will cause the tag to be aborted.

Here is an example of using taginfo to log tag and rtag commands. In the taginfo file put:

ALL /usr/local/cvsroot/CVSROOT/loggit

Where `/usr/local/cvsroot/CVSROOT/loggit' contains the following script:

#!/bin/sh
echo "$@" >>/home/kingdon/cvsroot/CVSROOT/taglog


Go to the first, previous, next, last section, table of contents.