手册

关键字替换

如果提供了源文件和目标文件,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$

TortoiseSVN 主页