使用tortoiseSVN和SubWCRev,但WCREV& WCREV-WCREV +操作无法正常工作

时间:2013-07-10 18:03:21

标签: svn tortoisesvn

我们正在尝试获取修订号并使用它执行一些基本操作。检索版本号的效果很好,但操作不会:

我们运行如下:

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构建脚本使用数学运算来执行某些操作以获得所需的结果。

1 个答案:

答案 0 :(得分:0)

SubWCRev只知道并处理预定义的一组关键字,其中$WCREV$存在,但$WCREV<ANYTHING>$ - 不是。因此你的变量&#34;没有扩展和计算。

修改

重新检查了文档和我的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中仔细阅读关键字说明:

  

替换为工作副本中的最高提交修订版,并使用&amp;之后的值进行AND运算。焦炭。例如:$ WCREV&amp; 0xFFFF $

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