下一个: , 上层: Keyword substitution


12.1 关键字列表

这是关键字列表:

$Author$
检入该版本的用户登录名。


$CVSHeader$
标准的头部(类似去掉 CVS 根的 $Header$)。 包括 rcs 文件的全路径、版本号、日期(UTC)、作者、状态、加锁人(如果有锁)。 在使用 cvs 中文件通常不用加锁。

注意,该关键字是新加到 cvs 的,假如旧的文件中有 $CVSHeader$ 并有其他意义,会带来一些问题。 可以在 CVSROOT/config 中用 KeywordExpand=eCVSHeader 来排除此关键字。 参阅 Configuring keyword expansion


$Date$
该版本被检入的日期与时间(UTC)。


$Header$
标准的 header 包括 rcs 文件的全路径、版本号、日期(UTC)、作者、状态、加锁人(如果有锁)。 在使用 cvs 中文件通常不用加锁。


$Id$
除了 rcs 文件不包括路径,其余和 $Header$ 相同。


$Name$
检出此文件所用的标签名。 该关键字只在检出时显式加上标签时扩展。 比如,运行 cvs co -r first 命令时,关键字扩展为 `Name: first'。


$Locker$
锁定版本的用户登录名(如果没有加锁此项为空,一般就如此,除非使用 cvs admin -l 加锁)。


$Log$
日志信息在提交时提供,前面是一个 header 包括 rcs 文件名、版本号、作者、日期(UTC)。 已有的日志信息不会被替换。 相反,新日志信息将插在 $Log:...$之后。 默认,每一新行前面使用同样的 $Log$ 关键字前的字符串, 除非在 CVSROOT/config 里面设置 MaxCommentLeaderLength

例如,文件文件包含:

            /* Here is what people have been up to:
             *
             * $Log: frob.c,v $
             * Revision 1.1  1997/01/03 14:23:51  joe
             * Add the superfrobnicate option
             *
             */
     

新增的行扩展 $Log$ 关键字后前面也会带有 ` * ' 字符。 与以前版本的 cvsrcs不同,rcs 文件中的不再使用 comment leader$Log$ 关键字将会在源文件中累积日志纪录。有些原因可能会造成问题。

如果 $Log$ 关键字的前缀超出 MaxCommentLeaderLength 长度, CVS 将跳过关键字扩展,除非在 CVSROOT/config 中设置 UseArchiveCommentLeader, 并且有 `comment leader' 设置在 RCS archive 文件,使得 comment leader 替代使用。 为了了解更多关于 RCS archive 中设置 comment leader,参阅 admin. 了解更多默认的 $Log$ 替换配置,参阅 config.

参阅 Log keyword.


$RCSfile$
不带路径的 RCS 文件名。


$Revision$
该文件的修订版本号。


$Source$
RCS 文件的完整路径。


$State$
赋予版本的状态。 可以通过使用 cvs admin -s 命令设置状态—参阅 admin options


Local keyword
CVSROOT/config 文件中的 LocalKeyword 选项可以被用作其他关键字的别名: $Id$, $Header$, or $CVSHeader$。 例如,在 CVSROOT/config 中包含 LocalKeyword=MYBSD=CVSHeader 这样一行,带有 $MYBSD$ 的文件会像 $CVSHeader$ 一样被扩展。 如果 src/frob.c 文件包含这个关键字,像下面这样:
            /*
             * $MYBSD: src/frob.c,v 1.1 2003/05/04 09:27:45 john Exp $
             */
     

许多仓库使用 “local keyword” 这类特性。 cvs 的一个旧补丁提供 LocalKeyword 特性,它们使用称为“custom tag”或“local tag”特性的 tag= 选项。 它被用于它们称为 tagexpand= 选项。 在 cvs 中另一个选项为 KeywordExpand。 参阅 Configuring keyword expansion

知名的项目中有这些例子: $FreeBSD$, $NetBSD$, $OpenBSD$, $XFree86$, $Xorg$.

使用它的优点在于可以使用自己的版本信息而不破坏上面版本(它们可能使用不同的 local keyword 或标准关键字)。 使得 bug 报告可以更恰当地识别第三方的错误源,以及减少导入新版本时产生的冲突数。

除 local keyword 之外所有的关键字都可以在 CVSROOT/config 文件中用 KeywordExpand 选项停用—参阅 Configuring keyword expansion 获得详细信息。