使用SVN号发布软件版本
在软件开发过程中,每次对一个软件产品的release,都要处理该软件版本号。有的版本号是人为定的,有些是自动生成的,本文介绍在使用SVN版本管理软件的情况下,利用SVN的一个命令来自动生成对应svn修改版本的版本号。
所以前提是你的开发机需要确认安装了SVN的客户端,并且你本机的代码是SVN上down下来的,也就是代码需要是一个working copy。
官方给出解释:
https://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev.html
列出可用的命令行开关
可用关键字列表
关键字例子
// Test file for SubWCRev
char *Revision = "$WCREV$";
char *Revision16 = "$WCREV&0xFF$";
char *Revisionp100 = "$WCREV+100$";
char *Revisionm100 = "$WCREV-100$";
char *Modified = "$WCMODS?Modified:Not modified$";
char *Unversioned = "$WCUNVER?Unversioned items found:no unversioned items$";
char *Date = "$WCDATE$";
char *CustDate = "$WCDATE=%a, %d %B %Y$";
char *DateUTC = "$WCDATEUTC$";
char *CustDateUTC = "$WCDATEUTC=%a, %d %B %Y$";
char *TimeNow = "$WCNOW$";
char *TimeNowUTC = "$WCNOWUTC$";
char *RevRange = "$WCRANGE$";
char *Mixed = "$WCMIXED?Mixed revision WC:Not mixed$";
char *ExtAllFixed = "$WCEXTALLFIXED?All externals fixed:Not all externals fixed$";
char *IsTagged = "$WCISTAGGED?Tagged:Not tagged$";
char *URL = "$WCURL$";
char *isInSVN = "$WCINSVN?versioned:not versioned$";
char *needslck = "$WCNEEDSLOCK?TRUE:FALSE$";
char *islocked = "$WCISLOCKED?locked:not locked$";
char *lockdateutc = "$WCLOCKDATEUTC$";
char *lockdate = "$WCLOCKDATE$";
char *lockcustutc = "$WCLOCKDATEUTC=%a, %d %B %Y$";
char *lockcust = "$WCLOCKDATE=%a, %d %B %Y$";
char *lockown = "$WCLOCKOWNER$";
char *lockcmt = "$WCLOCKCOMMENT$";
#if $WCMODS?1:0$
#error Source is modified
#endif
// End of file
After running SubWCRev.exe path\to\workingcopy testfile.tmpl testfile.txt
, the output file testfile.txt
would looks like this:
// Test file for SubWCRev
char *Revision = "22837";
char *Revision16 = "53";
char *Revisionp100 = "22937";
char *Revisionm100 = "22737";
char *Modified = "Modified";
char *Unversioned = "no unversioned items";
char *Date = "2012/04/26 18:47:57";
char *CustDate = "Thu, 26 April 2012";
char *DateUTC = "2012/04/26 16:47:57";
char *CustDateUTC = "Thu, 26 April 2012";
char *TimeNow = "2012/04/26 20:51:17";
char *TimeNowUTC = "2012/04/26 18:51:17";
char *RevRange = "22836:22837";
char *Mixed = "Mixed revision WC";
char *ExtAllFixed = "All externals fixed";
char *IsTagged = "Not tagged";
char *URL = "https://svn.code.sf.net/p/tortoisesvn/code/trunk";
char *isInSVN = "versioned";
char *needslck = "FALSE";
char *islocked = "not locked";
char *lockdateutc = "1970/01/01 00:00:00";
char *lockdate = "1970/01/01 01:00:00";
char *lockcustutc = "Thu, 01 January 1970";
char *lockcust = "Thu, 01 January 1970";
char *lockown = "";
char *lockcmt = "";
#if 1
#error Source is modified
#endif
// End of file
我做的列子:
SubWCRev.exe 软件路径:
C:\Program Files\TortoiseSVN\bin\SubWCRev.exe
我的SVN安装目录是:C:\Program Files\TortoiseSVN,
建立处理文件如 SystemCommon.h:
#define SW_VERSION_L_ ((1.0.+$WCREV+1$)
制作Bat文件,在程序编译之前处理:
“C:\Program Files\TortoiseSVN\bin\SubWCRev.exe” “../../../“ “../../document/SystemCommon.h” “../../common/SystemCommon/SystemCommon.h”
还没有评论,来说两句吧...