SVN 通过Shell Bash 获取项目Reversion号码

Posted Edison韩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN 通过Shell Bash 获取项目Reversion号码相关的知识,希望对你有一定的参考价值。

  接上篇  Jenkins Vue项目自动构建以及构建后续操作

  在项目构建完成后,需要提供当前构建的一个唯一标识的东西,并告诉我们的上线系统,这个唯一标识的东西可以让我们在回退线上版本的时候变得很有用,比如当前上线的是版本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

 

以上是关于SVN 通过Shell Bash 获取项目Reversion号码的主要内容,如果未能解决你的问题,请参考以下文章

在linux终端shell通过svn命令svn log获取的信息里中文部分是乱码,看不出是啥编码格式

如何通过 Shell (BASH/ZSH/SH) 获取文件的绝对路径?

通过JQ和BASH / SHELL获取JSON文档的第三个元素

UI测试后生成测试报告,利用shell脚本上传svn

使用SVN的新Rails项目的Bash脚本

Shell 获取路径