用户自定义日志

用户可以定制CVS来记录用户选择的任何一种操作。这种机制是通过在不同的时候执行相应脚本来实现的。脚本可能在一个列出信息和创建人的文件后面附加一条信息,也可以发送电子邮件给开发组的其它程序员,或许在一个给定的新闻组上发布一条信息。要记录提交操作,请使用loginfo文件[Loginfo 在 附录 C]。要分别记录commits、checkouts、exports和tags操作,请在模块文件中分别使用-i,-o, -e, 和-t选项。要通过更灵活的方式把信息通知给不同的用户,要求尽可能少地采用更新集中脚本的方式,这种情况下应该使用cvs watch add命令[使用cvs通知 在 第 10 章],这个命令即使在没有使用cvs watch on的时候也非常有用。

taginfo文件定义用户在运行tagrtag命令时执行的程序。作为管理文件的一种,taginfo文件有标准的格式[附录 C],文件中的每一行都是由一个的正则表达式加一条要执行的命令组成。传递给命令的参数按顺序是标签名(tagname)操作(operation)(tagaddtag -Fmovtag -ddel),源码库(repository),余下的为成对的文件名(filename) 版本(revision)。过滤程序(filter program)的非零退出会导致放弃当前的标签操作。

下面是使用taginfo文件来记录tag和rtag命令的例子。在taginfo文件里输入以下内容:

ALL /usr/local/cvsroot/CVSROOT/loggit

其中/usr/local/cvsroot/CVSROOT/loggit代表以下脚本:

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