下一个: Editing files, 上一个: Setting a watch, 上层: Watches
你可以告诉 cvs 你想得到关于在一个文件上所进行动作的通知。虽然可以不用
cvs watch on 命令,但如果要提醒开发人员使用 cvs edit 命令,
还是应该用 cvs watch on 命令。
-lR] [-a action]... [files]...将当前用户加入到 files 完成的通知列表。
-a选项指定通知给用户的 cvs 事件类型。action 类型可以是:
edit- 另一个用户对被监视的文件使用
cvs edit命令(见下文)。提交- 另一个用户提交了 files 的修改。
unedit- 另一个用户放弃编辑文件(而不是提交修改)。有以下几种方式可以做此事:
- 对该文件使用
cvs unedit命令(见下文)- 对该文件的父目录使用
cvs release命令(参阅 release)(或者递归到该文件 的某层目录)- 删除该文件,然后用
cvs update命令重建all- 上面的所有事件。
none- 在上面没有。(对
cvs edit命令很有用,见下文。)
-a选项可以出现多次,也可以没有。如果省略,默认使用all。处理 files 和选项的方法和
cvs watch on相同。
-lR] [-a action]... [files]...删除由
cvs watch add命令确立的通知;参数相同。如果使用-a选项, 只删除指定的动作的监视。
一旦通知的条件成立,cvs 会调用 notify 管理文件。编辑 notify
文件的方法与其他管理文件相同 (参阅 Intro administrative files)。该文件也符合
管理文件的语法习惯(参阅 syntax),文件中每一行为一个正则表达式加一个要执行的
命令。命令中包含 `%s' 用来替换所要通知的用户;其余的是通知需要使用的附加
信息,它们作为命令的标准输入。标准用法是将放在 notify 文件的一行中:
ALL mail %s -s "CVS notification"
这条命令使用电子邮件通知用户。
注意,如果你直接使用这种方法,用户在服务器机器上接收通知。当然,可以写一个 notify 脚本将通知指向其他的地方,但为了使用方便,cvs 允许给每个用户 指定一个相关的地址。做法是在 CVSROOT 目录下创建一个 users 文件, 每行的格式为 user:value。这样 cvs 不是把被通知用户名传递给 notify,而是传递 value 中的值(一般是其它机器上的 email 地址)。
cvs 不会对你自己做的修改进行通知。现在的检测是基于触发事件的用户名与被通知的 用户名。通常,实际上监视特性只跟踪每个用户的一个编辑。或许分别监视每个目录会更有用, 所以这方面将来也许改变。