用TortoiseSVN的SubWCRev.exe管理同步项目版本号
2017-11-01 10:50
501 查看
原文出处:“ps:转载注明出处是一种美德 http://blog.sina.com.cn/s/blog_75c9af020102vgh2.html” 尊重原创。
以下为原创作者的全文内容:
使用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版本号
以下为原创作者的全文内容:
使用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版本号
相关文章推荐
- [置顶] 【PE】利用SVN的SubWCRev.exe管理同步项目的版本号
- 用SVN的SubWCRev管理同步项目版本号
- 用SVN的SubWCRev管理同步项目版本号
- 利用subwcrev.exe工具自动生成VS开发工具中的版本号
- SVN如何管理项目的版本号,如1.0.1.xx,修改到1.1.1.xx?
- 利用 Google Code建立自己的 SVN项目同步管理
- 使用bat 调用 SubWCRev 修改beego的app.conf版本号节点
- 怎样在VS2005,VS2008下里用SVN的SubWCRev自增修订号 .
- Git Submodule管理项目子模块
- TortoiseSVN 管理码云开源项目
- 同步练习8-项目沟通管理
- 怎样在VS2005下里用SVN的SubWCRev自增修订号
- Versions Maven Plugin 管理项目重命名版本号
- 使用SVN-subwcrev命令 发布软件版本
- 同步训练1--项目管理概论
- 同步训练4-项目时间管理
- 使用git submodule管理一个需要多个分立开发或者第三方repo的项目
- 同步训练5-项目成本管理
- 项目管理实践【六】自动同步数据库【Using Visual Studio with Source Control System to synchronize database automaticall
- Atitit 项目源码管理 attilax著 1. 源码结构sdk目录结构 1 1.1. 源码分类,配置文件,主程序文件,sql文件 1 2. 源码管理,提交,更新,与同步 1 2.1. 源码同步