用SVN的SubWCRev管理同步项目版本号

使用svn进行项目代码管理过程中,都有这么个问题,发布版本的时候,几下了svn的版本号,然后出现bug后,根据记录去查找对应的svn版本的代码进行定位和解决bug,但是大部分时候我们希望,在日志里面,或者在软件中编译进去svn号,这样就可以快速的定位到是哪个svn的版本出现问题,下面通过在vs2008中实现

1.首先新建一个模板,比如叫version_template.h,内容如下:

ifndef TMPVERSION_H

define TMPVERSION_H

define VER_MAJOR 1

define VER_MINOR 0

define VER_REVISION WCREV //注意这个,查看svn帮助文档可以看到会进行svn号的替换

endif //!TMPVERSION_H

2.新建一个批处理文件(windows)或者shell脚本文件(linux),此处以windows做示例,svnupdate.bat,内容如下:
setlocal

::设置svn客户端安装目录
set SVN_PATH=C:\Program Files\TortoiseSVN\bin

::设置工作目录,即工程目录
set WORK_DIR=F:\SvnCode\DemoClient

::设置版本模版文件,对应第一步中新建的模板文件
set VERSION_TEMPLATE=F:\SvnCode\DemoClient\version_template.h

::设置版本号生成文件,生成的文件就是我们需要使用的版本文件
set VERSION_RELEASE=F:\SvnCode\DemoClient\version.h

::进入svn客户端安装目录
cd %SVN_PATH%
::执行更新版本号操作
SubWCRev.exe “%WORK_DIR%” “%VERSION_TEMPLATE%” “%VERSION_RELEASE%”

endlocal

3.以管理员权限执行批处理文件,可以看到version.h文件在VERSION_RELEASE中生成了,里面内容与新建的模板文件基本一样,除了#define VER_REVISION WCREV
version.h内容:

ifndef TMPVERSION_H

define TMPVERSION_H

define VER_MAJOR 1

define VER_MINOR 0

define VER_REVISION 1617

endif //!TMPVERSION_H

4.我们将新生成的version.h文件加入VS工程,然后在代码里面我们就可以组成一个版本号如:
1.0.1617,通过这个版本号,就可以快速的定位到是什么svn号的代码出现的bug,然后通过svn的log就能查看是否已经解决

5.当然,可能你会说,每次都要手动去执行这个批处理文件来更新version.h文件还是比较麻烦,那么,你可以再工程属性中配置预生成事件,设置命令行中内容为:svupdate.bat,那么每次你执行生成编译的时候都可以自动帮你更新,然后再编译进软件中,若使用的linux环境,这可以在makefie中加入shell脚本的执行,也是可以自动生成文件,并编译进去软件中,同时,如果是对后台进行开发的可能只有日志输出,那么你可以在每个日志的开头都先写入我们得到的版本号来进行快速定位日志文件对应的svn版本号

ps:转载注明出处是一种美德 http://blog.sina.com.cn/s/blog_75c9af020102vgh2.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值