背景
在软件开发过程中,每次对一个软件产品的release,都要处理该软件版本号。
有的版本号是人为定的,有些是自动生成的,本文介绍在使用SVN版本管理软件的情况下,利用SVN的SubWCRev命令来自动生成对应svn修改版本的版本号,这样便于快速找到对应二进制的编译时的SVN版本号。
操作步骤
1. 首先创建一个需要文件版本信息的模板(svnTemplate.h)。
//svnTemplate.h头文件
#ifndef __SVN_TEMPLATE_H__
#define __SVN_TEMPLATE_H__
//工作副本中最高提交版本
#define SVN_REVISION "$WCREV$"
//工作副本中最高提交版本对应的提交时间,格式为yyyy/MM/dd hh:mm:ss
#define SVN_DATE_TIME "$WCDATE$"
//系统当前时间,格式为yyyy/MM/dd hh:mm:ss
#define SYS_TIME_NOW "$WCNOW$"
#endif
2. 然后开始使用subwcrev.exe此命令,格式如下,
SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]
具体命令参数及内容,可以参考原版地址
第 6 章 SubWCRev 程序
为了方便添加到vs的项目属性中,可以创建一个bat脚本(setsvnversion.bat)和工程配置文件(.vcproj/.vcxproj)同级。
::setsvnversion.bat
SubWCRev.exe .\ ".\include\svnTemplate.h" ".\include\svnVersion.h"
svnTemplate.h文件放在了工程目录下的include路径下,subwcrev会获取SVN的工程提交版本号,替换此文件内的变量;
然后使用svnTemplate.h文件替换工程使用文件svnVersion.h。
3. 将脚本添加到VS工程属性当中
选择工程项目->鼠标右键->属性
预生成事件中,将命令行添加上此bat的名字;(也可以在这直接写SubWCRev.exe .\ ".\include\svnTemplate.h" ".\include\svnVersion.h")
设置完成,点击确定。