工具——代码中自动生成SVN版本号
2016-04-06 11:22
411 查看
本节和大家讨论一下程序集版本最后一位使用SVN版本号的自动生成方法,这里就向大家简单介绍一下。
在进行自动部署的时候,经常需要用脚本获取程序的最新版本号。现在我们定义每个程序集的版本信息的最末段表示SVN的源码版本。
详细定义如下:
程序集版本号分为4段,例如1.0.4.23。
第一段为主版本号,项目一但启动则不会更改。
第二段为次版本号,在项目功能做较大调整时增加,增量为1。
第三段为修订版本号,通常在解决缺陷或者细微功能变化时增加,增量为1或者2。该版本号分奇数和偶数两种。奇数表示测试版本,偶数表示稳定版本。
第四段为SVN源码版本号,该版本号通过脚本自动生成。
使用脚本自动生成SVN版本号的先决条件:
安装TortoiseSVN;
源代码在SVN版本管理控制之下。
1, 通过cmake脚本 检查 SVN 并获取SVN version
以上hamsterStore是Project Name; CONFIG_Get_Revision即是获取到的svn版本号;
2, 用shell脚本获取svn版本号
在进行自动部署的时候,经常需要用脚本获取程序的最新版本号。现在我们定义每个程序集的版本信息的最末段表示SVN的源码版本。
详细定义如下:
程序集版本号分为4段,例如1.0.4.23。
第一段为主版本号,项目一但启动则不会更改。
第二段为次版本号,在项目功能做较大调整时增加,增量为1。
第三段为修订版本号,通常在解决缺陷或者细微功能变化时增加,增量为1或者2。该版本号分奇数和偶数两种。奇数表示测试版本,偶数表示稳定版本。
第四段为SVN源码版本号,该版本号通过脚本自动生成。
使用脚本自动生成SVN版本号的先决条件:
安装TortoiseSVN;
源代码在SVN版本管理控制之下。
1, 通过cmake脚本 检查 SVN 并获取SVN version
IF (EXISTS "${PROJECT_SOURCE_DIR}/.svn/") ## when SVN version >= 1.8, maybe getting subversion failed. include(FindSubversion) FIND_PACKAGE(Subversion) IF (Subversion_FOUND) Subversion_WC_INFO(${CMAKE_CURRENT_LIST_DIR} hamsterStore) ELSE (Subversion_FOUND) MESSAGE (FATAL_ERROR "Subversion not found.") ENDIF (Subversion_FOUND) ELSE (EXISTS "${PROJECT_SOURCE_DIR}/.svn/") MESSAGE (STATUS "Subversion is not found.") ENDIF (EXISTS "${PROJECT_SOURCE_DIR}/.svn/") IF(${hamsterStore_WC_REVISION}) set (CONFIG_Get_Revision ${hamsterStore_WC_REVISION} CACHE STRING "software revision") MESSAGE (STATUS "CONFIG_Get_Revision from Subversion.") ELSE(${hamsterStore_WC_REVISION}) set (CONFIG_Get_Revision "12345" CACHE STRING "software revision") MESSAGE (STATUS "CONFIG_Get_Revision set is 12345.") ENDIF(${hamsterStore_WC_REVISION})
以上hamsterStore是Project Name; CONFIG_Get_Revision即是获取到的svn版本号;
2, 用shell脚本获取svn版本号
`svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` 或者 # 获取XML版本的svn信息,这样可以避免不同语言的问题 svnv=`svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` echo $svnv 安卓系统下: svnv=`svnversion |sed 's/^.*://' |sed 's/[A-Z]*$//'` echo $svnv sed -i s/versionName=".∗build−[0-9]*"/versionName="\1$svnv"/ AndroidManifest.xml cat AndroidManifest.xml |grep versionName
相关文章推荐
- JAVA如何调用C/C++方法
- 《第一行代码》启动活动最佳写法
- Python 第三方库的安装
- php的执行原理/执行流程
- java.lang.UnSupportedClassVersionError
- PhpStorm+PhpStudy+xdebug 配置图解
- C# 浅拷贝与深拷贝区别
- Qt设置窗口标题和exe图标
- python中filter函数用法
- Qt组件之文本框类
- java学习笔记(七)
- 大地图坐标换算代码
- ASP.NET MVC在线预览Excel、Word、TXT、PDF文件
- ASP.NET MVC在线预览Excel、Word、TXT、PDF文件
- Python Twisted系列教程7:小插曲,Deferred
- VC++ 线程同步 总结
- 【C++】《Effective C++》读书笔记汇总
- Java在ACM中的应用
- java错误之调用
- 解决Zend加密的PHP页面出现Fatal error: Incompatible file format: The encoded file has format major ID 1, whereas the Loader expects 4 in