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


C.3.8 Taginfo

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

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

b
标签类型 (T 是指分支,N 为非分支,或者在删除操作中 ? 是未知)
o
操作 (add 对于 tag, mov 对于 tag -F, 或 del 对于 tag -d)
t
标签名
{sVv}
文件属性,其中:
s
文件名
V
旧版本号(提交前)
v
新版本号(提交后)

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

当前,如果没有指定格式化字符串,在命令行模板被替换前,会追加默认的字符串 ` %t %o %p %{sv}',但此特性已废弃。保留的目的只是为了新的 cvs 应用程序能与旧仓库保持兼容。更新的一些信息,参阅 Updating Commit Files

过滤程序的非零返回值将使 tag 操作中止。

这里是使用 taginfo 来记录 tagrtag 的例子。在 taginfo 里面加上:

     ALL /usr/local/cvsroot/CVSROOT/loggit %t %b %o %p %{sVv}

其中 /usr/local/cvsroot/CVSROOT/loggit 包含下面脚本:

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