history database History browsing annotate
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 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 Getting Notified); 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 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