我正在处理一个spec文件,我想在这里使用SVN repo的修订号作为版本号的一部分。
如果我只使用:
%(svnversion -c %{sourcedir})
然后我得到PackageName-1-209:299,其中299是修订号。因此,我试图裁剪出“1-209”部分,因为它一直存在并且不会改变。
我遇到的问题是:
%(svnversion -c %{sourcedir} | sed 's/^1\-209://')
我似乎从中得到的是PackageName209:299仍然。
非常感谢任何帮助!
答案 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不起作用。