下一个: 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 不会对你自己做的修改进行通知。 现在的检测是基于触发事件的用户名与被通知的用户名。 通常,实际上监视特性只跟踪每个用户的一个编辑。 或许分别监视每个目录会更有用,所以这方面将来也许改变。