首页git › 关于svn、git生成版本号脚本的改进

关于svn、git生成版本号脚本的改进

之前写了篇文章介绍使用脚本生成SVN、GIT版本号的SVN、GIT生成版本号,获取SVN版本号的方法有些不恰当,在不同版本的SVN上会出现问题。这里再对此进行完善。
之前的脚本是通过下面的命令获取当前的SVN的提交版本号:

示例可以参考前面写的文章,意思是获取第5行第3列的数字,这个数字就是提交代码的SVN号。关键的问题是,不同版本的SVN是不是都是第5行是版本号?非也。不同版本是不同的。所以上面的命令就有局限性。我尝试搜索相关资料,但没找到好的方法。于是只好继续沿用上面的方法。但多了对不同的SVN版本作判断。
下面给出结合了SVN、GIT两种版本号生成脚本。脚本中会判断是否存在.git或.svn目录,如果都存在,则将两个版本号写到一起,如只存在其中一个,则生成对应的版本号。

生成的文件内容如下:

补充:
原来的脚本关于SVN版本号有一个小小的bug。现在已经修改文章了。
原来是VER16=svn –version | grep 1.6,“1.6”会匹配“数字1+任意字符+数字6”,比如它会匹配“1.6”、“126”。如果svn –version输出的信息中不包含“1.6”,但包含了“126”,则VER16是不为空的,脚本会认为是svn的1.6版本。这是不正确的。这是由于同事安装了1.6版本的SVN,但build版本恰好有“128”字符导致上述脚本判断出错而发现的(这种情况下,脚本认为是1.8版本的SVN)。
改为VER16=svn –version | grep “1\.6″就能精确地匹配“1.6”,而不是其它的字符。
对此造成的误解十分抱歉。

发表评论