我们正在尝试获取修订号并使用它执行一些基本操作。检索版本号的效果很好,但操作不会:
我们运行如下:
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构建脚本使用数学运算来执行某些操作以获得所需的结果。
答案 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变量和原始数字)