无法从svn获取spec文件的修订号

时间:2012-03-08 20:44:59

标签: svn shell rpm specifications

我正在处理一个spec文件,我想在这里使用SVN repo的修订号作为版本号的一部分。

如果我只使用:

%(svnversion -c %{sourcedir})

然后我得到PackageName-1-209:299,其中299是修订号。因此,我试图裁剪出“1-209”部分,因为它一直存在并且不会改变。

我遇到的问题是:

%(svnversion -c %{sourcedir} | sed 's/^1\-209://')

我似乎从中得到的是PackageName209:299仍然。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

你可能应该尝试另一个正则表达式:

%(svnversion -cn %{sourcedir} | sed -r 's/.+://')

但是,请注意,svnversion最后也可能添加一些字母(如果有本地修改,则为M,如果是切换的工作副本,则为S)。你需要检查它们 - 取决于你。

PS

有一种更快的方式来获取当前版本(因为svnrevision请求svn服务器收集数据),描述为here

grep revision .svn/entries |  awk -F\" '{print $2}'

但是,从版本1.7开始,这对svn不起作用。