1

我们正在尝试获取修订号并对其进行一些基本操作。修订号的检索效果很好,但操作不:

我们按如下方式运行它:

SubWCRev.exe . buildNumTemplate.txt buildNum.txt

在 buildNumTemplate.txt 我们有以下内容

#WORKS
Revision:   $WCREV$
Modified:   $WCMODS?Yes:No$
Built_On:   $WCNOW$

#DOESN'T WORK
Revision_Minus_100: $WCREV-100$
Revision_Plus_100: $WCREV+100$
Revision_Append: $WCREV&test$

运行上述命令后,我们得到以下显示问题的信息:

#WORKS
Revision:   35592
Modified:   Yes
Built_On:   2013/07/10 11:58:45

#DOESN'T WORK
Revision_Minus_100: $WCREV-100$
Revision_Plus_100: $WCREV+100$
Revision_Append: $WCREV&test$

我们运行 SubWCRev 的方式是否有一些奇怪的地方,以至于它不能正确地执行操作?如果我们不能让它工作,我们可能会使用 ant 构建脚本执行一些操作,使用那里的数学运算来获得所需的结果。

4

1 回答 1

0

SubWCRev 只知道和处理预定义的一组关键字,如果$WCREV$存在,但$WCREV<ANYTHING>$- 不知道。因此,您的“变量”不会被扩展和计算。

编辑

重新检查了文档和我的 SubWCRev。因为 URL 是http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev-example.html(包含 RELEASE),所以它应该只适用于发布(最新的公共版本)。今天发布的是

SubWCRev 1.8.0, Build 24401

并且对于手动工作的这个版本模板没有任何问题。看起来您使用了错误版本的文档,这导致了混乱。

对于我上次使用的 repo-URL

// Test file for SubWCRev

char *Revision      = "1244";
char *Revision16    = "220";
char *Revisionp100  = "1344";
char *Revisionm100  = "1144";
char *Modified      = "Not modified";
char *Unversioned   = "no unversioned items";
char *Date          = "2013/04/01 08:30:36";
char *CustDate      = "Mon, 01 April 2013";
char *DateUTC       = "2013/04/01 02:30:36";
char *CustDateUTC   = "Mon, 01 April 2013";
char *TimeNow       = "2013/07/11 11:06:28";
char *TimeNowUTC    = "2013/07/11 05:06:28";
char *RevRange      = "1263";
char *Mixed         = "Not mixed";
char *ExtAllFixed   = "All externals fixed";
char *IsTagged      = "Not tagged";
char *URL           = "https://subversion.assembla.com/svn/customlocations-greylink/trunk/city";
char *isInSVN       = "versioned";
char *needslck      = "FALSE";
char *islocked      = "not locked";
char *lockdateutc   = "1970/01/01 00:00:00";
char *lockdate      = "1970/01/01 06:00:00";
char *lockcustutc   = "Thu, 01 January 1970";
char *lockcust      = "Thu, 01 January 1970";
char *lockown       = "";
char *lockcmt       = "";

#if 0
#error Source is modified
#endif

// End of file

WCREV&即使在 1.8 中,您的示例中的关键字也必须以正确的方式使用:在 doc 中仔细阅读关键字描述:

替换为工作副本中的最高提交版本,并与 & 字符后的值进行与运算。例如:$WCREV&0xFFFF$

即表达式的右侧部分必须是数字,而不是用于类似 URL 的结果文本的自定义文本字符串(请参阅上面示例中的 Revision16 变量和原始数字)

于 2013-07-10T18:51:34.550 回答