You can customize cvsnt 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 (the section called “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 (the section called “Telling CVS to notify you when someone modifies a file”); 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 (Appendix B, 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
. The standard input
contains pairs of filename
revision
. A non-zero exit of the filter program
will cause the tag to be aborted.
Each line in the taginfo file consists of a regular expression and a command-line template. Each line can have any combination of the following, in addition to those listed in the common syntax (the section called “The common syntax”.)
Directory name relative to the current root.
Message supplied on the command line.
List of files being tagged
List of versions being tagged
tag type
tag operation
tag name
If no other options are specified, the default format string is %t %o %r/%p %<{%s %v}
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