章 12. 关键字替换

目录
关键字列表
使用关键字
避免替换
替换模式
$Log$关键字的问题

只要你在工作目录中编辑源代码,你可以随时使用cvs statuscvs log命令了解文件的状况。一旦你从开发环境中导出(export)了这些文件,将很难识别这些文件的版本。

cvs提供一种关键字替换(keyword substitution),或者叫作关键字扩展(keyword expansion)机制来帮助识别这些文件的状况。在文章中嵌入$keyword$$keyword:…$形式的字串,以后在获得文件新版本时将自动被$keyword:value$字串所替代。

关键字列表

以下列出关键字:

$Author$

提交该版本的用户登录名。

$Date$

该版本被提交的日期与时间(UTC)。

$Header$

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

$Id$

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

$Name$

检出的标签名。该关键字只在检出时显式加上标签时扩展。比如,执行cvs co -r first命令,关键字扩展为Name: first

$Locker$

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

$Log$

log信息在提交时提供,前面是一个header包括rcs文件名,版本号,作者,日期(UTC)。已有的log信息不会被替换。相反,新log信息将插在$Log:…$后面。每一新行前面使用同样的$Log关键字前的字串。例如,一个包含下列内容的文件:

  /* 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关键字后前面也会带有 * 字符。与以前版本的cvs和rcs不同,rcs文件中的不再使用。$Log关键字将会在源文件中累积log纪录。有些原因可能会造成问题[$Log$关键字的问题]。

$RCSfile$

不带路径的rcs文件名。

$Revision$

该文件的版本号。

$Source$

rcs文件的完整路径。

$State$

版本的状态,可以通过使用cvs admin -s命令设置,参看[admin options 在 附录 A]。