SVN 通过Shell Bash 获取项目Reversion号码
在项目构建完成后,需要提供当前构建的一个唯一标识的东西,并告诉我们的上线系统,这个唯一标识的东西可以让我们在回退线上版本的时候变得很有用,比如当前上线的是版本1,上线后发现有bug,为了不影响用户的使用,需要临时回退到上一个版本,在上线系统中存在版本0和版本1,这时候我们只需要选择版本0(没bug的版本)重新上线一次就行。
那么这个唯一标识用什么表示好呢?我们现在没有项目版本之说,比如当前版本V0.5.0,采用项目版本迭代管理是最好的,希望领导以后会用。想来想去,选择采用SVN默认提供的Reversion号码,我们可以知道当前构建版本跟SVN仓库有什么关系。
问题来了?如何通过Shell脚本获取到当前项目的SVN Reversion号...在比较新的SVN上有命令 svnversion 可以搞定。在项目根目录执行:
$ svn info svn: E155036: Please see the 'svn upgrade' command svn: E155036: Working copy '/home/easwy/dev' is too old (format 10, created by Subversion 1.6)
错误原因:当前工程副本的SVN版本(远程SVN仓库)比本机的SVN低导致的
解决办法:在当前根目录执行命令 svn upgrade
$ svn upgrade
然后在当前目录执行
$ svnversion
1161M
1161:Reversion号
M:表示当前工作目录副本有修改
参考资料:
https://stackoverflow.com/questions/2299593/using-bash-to-get-revision-number-from-subversion
http://svnbook.red-bean.com/nightly/en/svn.ref.svnversion.re.html