如果提供了源文件和目标文件,SubWCRev 会将源文件复制到目标文件,并执行以下关键字替换
表 6.3. 可用关键字列表
关键字 | 描述 |
---|---|
$WCREV$ | 替换为工作副本中最高的提交版本。 |
$WCREV&$ |
替换为工作副本中最高的提交版本,并与 & 字符后的值进行 AND 操作。例如:$WCREV&0xFFFF$
|
$WCREV-$, $WCREV+$ |
替换为工作副本中最高的提交版本,并加上或减去 + 或 - 字符后的值。例如:$WCREV-1000$
|
$WCDATE$, $WCDATEUTC$ |
替换为最高提交版本的提交日期/时间。默认情况下,使用国际格式:yyyy-mm-dd hh:mm:ss 。或者,您可以指定一个自定义格式,该格式将与 strftime() 一起使用,例如:$WCDATE=%a %b %d %I:%M:%S %p$ 。有关可用格式字符的列表,请查看 在线参考 .
|
$WCNOW$, $WCNOWUTC$ |
替换为当前系统日期/时间。这可以用来指示构建时间。时间格式可以使用与 $WCDATE$ 相同的描述。
|
$WCRANGE$ | 替换为工作副本中的更新版本范围。如果工作副本处于一致状态,则这将是一个单独的版本。如果工作副本包含混合版本,无论是由于过时,还是由于故意更新到版本,则范围将以 100:200 的形式显示。 |
$WCMIXED$ |
$WCMIXED?TText:FText$ 如果存在混合更新版本,则替换为 TText ,否则替换为 FText 。
|
$WCMODS$ |
$WCMODS?TText:FText$ 如果存在本地修改,则替换为 TText ,否则替换为 FText 。
|
$WCUNVER$ |
$WCUNVER?TText:FText$ 如果工作副本中存在未版本化的项目,则替换为 TText ,否则替换为 FText 。
|
$WCEXTALLFIXED$ |
$WCEXTALLFIXED?TText:FText$ 如果所有外部都固定到显式版本,则替换为 TText ,否则替换为 FText 。
|
$WCISTAGGED$ |
如果仓库 URL 包含标签分类模式,则 $WCISTAGGED?TText:FText$ 将被替换为 TText ,否则替换为 FText 。
|
$WCURL$ | 替换为传递给 SubWCRev 的工作副本路径的仓库 URL。 |
$REPOROOT$ | 替换为仓库根目录的 URL。 |
$WCINSVN$ |
如果条目已版本化,则 $WCINSVN?TText:FText$ 将被替换为 TText ,否则替换为 FText 。
|
$WCNEEDSLOCK$ |
如果条目设置了 svn:needs-lock 属性,则 $WCNEEDSLOCK?TText:FText$ 将被替换为 TText ,否则替换为 FText 。
|
$WCISLOCKED$ |
如果条目已锁定,则 $WCISLOCKED?TText:FText$ 将被替换为 TText ,否则替换为 FText 。
|
$WCLOCKDATE$, $WCLOCKDATEUTC$ |
替换为锁定日期。时间格式可以使用与 $WCDATE$ 相同的描述。
|
$WCLOCKOWNER$ | 替换为锁定所有者的名称。 |
$WCLOCKCOMMENT$ | 替换为锁定的注释。 |
$WCUNVER$ |
如果工作副本中存在未版本化的文件或文件夹,则 $WCUNVER?TText:FText$ 将被替换为 TText ,否则替换为 FText 。
|
SubWCRev 不直接支持表达式的嵌套,因此例如您无法使用像
#define SVN_REVISION "$WCMIXED?$WCRANGE$:$WCREV$$"
但您通常可以通过其他方式解决它,例如
#define SVN_RANGE $WCRANGE$ #define SVN_REV $WCREV$ #define SVN_REVISION "$WCMIXED?SVN_RANGE:SVN_REV$"
其中一些关键字适用于单个文件而不是整个工作副本,因此只有在调用 SubWCRev 扫描单个文件时使用这些关键字才有意义。这适用于 $WCINSVN$
、$WCNEEDSLOCK$
、$WCISLOCKED$
、$WCLOCKDATE$
、$WCLOCKOWNER$
和 $WCLOCKCOMMENT$
。