Subversion定义了可供替换的关键字列表。该列表包含以下关键字,其中一些关键字可以使用别名:
Date
这个关键字描述了上次该文件在版本库中已被更改的时间,并且使用下列格式$Date: 2006-07-22 21:42:37 -0700 (Sat, 22 Jul 2006) $
。它也可以被指定为LastChangedDate
。与Id
使用的UTC不同,关键字
Date
使用本地时区显示日期。
Revision
这个关键字描述了这个文件在版本库中更改的最后一个已知版本,看起来像这样$Revision: 144 $
。它也可能被指定为LastChangedRevision
或Rev
。
Author
这个关键字描述了在版本库中最后一个更改这个文件的已知用户,看起来像这样$Author: harry $
。它也可以被指定为LastChangedBy
。
HeadURL
该关键字描述了版本库中文件最新版本的完整URL,并且看起来像这样$HeadURL: http://svn.example.com/repos/trunk/calc.c $
。它可以缩写为URL
。
Id
此关键字是其他关键字的压缩组合。它被替换后,看起来像是 $Id: calc.c 148 2006-07-28 21:30:43Z sally $
,可以被解释为表示该文件calc.c
是在用户sally
在2006年7月28日晚上的版本148中最后更改的。此关键字显示的日期是UTC,与Date
关键字(使用本地时区)不同。
Header
此关键字与关键字Id
类似,但包含该项目的最新版本的完整URL,完全相同HeadURL
。它被替代后看起来像$Header: http://svn.example.com/repos/trunk/calc.c 148 2006-07-28 21:30:43Z sally $
。
举例如下,假如我们有一个带有文件头的test.sv文件,其中有svn的关键字,
如果在该文件中没有设置svn:keywords属性,Subversion将不会做任何特殊的事情。 现在,让我们启用LastChangedDate关键字的替代。
$ svn propset svn:keywords "Date Author " test.sv
property 'svn:keywords' set on 'test.sv'
$
通常情况下,我会设置如下关键字:
$ svn propset svn:keywords "Date Author Revision URL" test.sv
property 'svn:keywords' set on 'test.sv'
$ svn commit -m"" test.sv
关键字替换后,效果如下: