博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工具——代码中自动生成SVN版本号
阅读量:7239 次
发布时间:2019-06-29

本文共 1940 字,大约阅读时间需要 6 分钟。

本节和大家讨论一下程序集版本最后一位使用SVN版本号的自动生成方法,这里就向大家简单介绍一下。
在进行自动部署的时候,经常需要用脚本获取程序的最新版本号。现在我们定义每个程序集的版本信息的最末段表示SVN的源码版本。
详细定义如下:
    程序集版本号分为4段,例如1.0.4.23。
    第一段为主版本号,项目一但启动则不会更改。
    第二段为次版本号,在项目功能做较大调整时增加,增量为1。
    第三段为修订版本号,通常在解决缺陷或者细微功能变化时增加,增量为1或者2。该版本号分奇数和偶数两种。奇数表示测试版本,偶数表示稳定版本。
    第四段为SVN源码版本号,该版本号通过脚本自动生成。
使用脚本自动生成SVN版本号的先决条件:
    安装TortoiseSVN;
    源代码在SVN版本管理控制之下。
1, 通过cmake脚本 检查 SVN 并获取SVN version                                

1 IF (EXISTS "${PROJECT_SOURCE_DIR}/.svn/")             ## when SVN version >= 1.8, maybe getting subversion failed. 2         include(FindSubversion) 3         FIND_PACKAGE(Subversion) 4         IF (Subversion_FOUND) 5                 Subversion_WC_INFO(${CMAKE_CURRENT_LIST_DIR}  hamsterStore) 6         ELSE (Subversion_FOUND) 7                 MESSAGE (FATAL_ERROR "Subversion not found.") 8         ENDIF (Subversion_FOUND) 9 ELSE (EXISTS "${PROJECT_SOURCE_DIR}/.svn/")10         MESSAGE (STATUS "Subversion is not found.")11 ENDIF (EXISTS "${PROJECT_SOURCE_DIR}/.svn/")12 13 IF(${hamsterStore_WC_REVISION})14         set (CONFIG_Get_Revision    ${hamsterStore_WC_REVISION}    CACHE STRING "software revision")15         MESSAGE (STATUS "CONFIG_Get_Revision from Subversion.")16 ELSE(${hamsterStore_WC_REVISION})17         set (CONFIG_Get_Revision    "12345"                    CACHE STRING "software revision")18         MESSAGE (STATUS "CONFIG_Get_Revision set is 12345.")19 ENDIF(${hamsterStore_WC_REVISION})

 

以上hamsterStore是Project Name; CONFIG_Get_Revision即是获取到的svn版本号;
2, 用shell脚本获取svn版本号

1     `svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` 2 或者 3     # 获取XML版本的svn信息,这样可以避免不同语言的问题   4     svnv=`svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'`   5     echo $svnv 6  7 安卓系统下: 8     svnv=`svnversion |sed 's/^.*://' |sed 's/[A-Z]*$//'`   9     echo $svnv  10     sed -i s/versionName=".∗build−[0-9]*"/versionName="\1$svnv"/ AndroidManifest.xml  11     cat AndroidManifest.xml |grep versionName

 

   

转载于:https://www.cnblogs.com/sun-frederick/p/5358496.html

你可能感兴趣的文章
tomcat 指定编码
查看>>
第七次课作业(项目沟通管理、合同管理)
查看>>
PHP 性能分析与实验(二)——PHP 性能的微观分析
查看>>
angular2 在header中带有继承的cookie
查看>>
docker_270
查看>>
maven规范:ssh框架整合
查看>>
iSCSI
查看>>
samba
查看>>
KMP子串查找算法(二十六)
查看>>
硬盘SMART检测参数详解[转]
查看>>
异常解决java.io.IOException: invalid constant type: 15
查看>>
交换、比较
查看>>
56个民族数组Plist文件
查看>>
深信服各种设备管理地址
查看>>
golang语言渐入佳境[31]-错误处理
查看>>
3种方式教你怎样显示手机wifi密码,不再愁密码忘记了
查看>>
侧滑菜单(四)
查看>>
MySQL Innodb 如何找出阻塞事务源头 SQL
查看>>
云数据库RDS存储能力进化解析!
查看>>
信用证流动流程图绘制方法
查看>>