下一个: , 上一个: verifymsg, 上层: Trigger Scripts


C.3.6 Loginfo

loginfo 文件用于控制仓库中版本变更和目录添加之后,log 信息发送到哪里。 posttag 了解如何 log 标签信息和 postadmin 了解如何 log admin 命令造成的变更。

loginfo 文件有一个标准的脚本 hook 形式(参阅 Trigger Scripts),每一行是 一个正则表达式和所执行的命令。它支持 ALL 和 DEFAULT 关键字。

调用任何指定的脚本:

commit
每个目录一次,在此目录中的所有文件成功提交之后立即执行。
import
每个 import 一次,完成所有写操作之后立即执行。
add
成功 add 到目录之后立即执行。

通过 loginfo 调用的任何脚本会从标准输入获得 log 信息。注意过滤程序 必须 从标准输入读 所有 的 log 信息,否则 cvs 将因管道信号 打断而失败。

除了通用格式化字符串以外(参阅 syntax),loginfo 还支持:

{sVv}
文件属性,其中:
s
文件名
V
旧版本号(提交前)
v
新版本号(提交后)

例如,有效的格式化字符串是 `%%', `%s', `%{s}' 和 `%{sVv}'。

当前,如果 config 管理文件(参阅 config)里面没有设置 `UseNewInfoFmtStrings',格式化字符串将与 cvs 以前版本一样被替换, 但此特性已废弃。保留的目的只是为了新的 cvs 应用程序能与旧仓库保持兼容。 更新的一些信息,Updating Commit Files

举例,`/u/src/master/yoyodyne/tc' 是仓库,`%p' 和 `%{sVv}' 是格式化字符串,有三个文件(ChangeLogMakefilefoo.c)被修改, 输出大概是:

     yoyodyne/tc ChangeLog 1.1 1.2 Makefile 1.3 1.4 foo.c 1.12 1.13

注意: 当 cvs 访问远程仓库,loginfo 将在 远端 (例如,服务器) 执行,而不是客户端(参阅 Remote repositories))。