在本地机器上,使用 . 获取 subversion 存储库的修订号没有问题svnversion
。现在我想从我的在线存储库(带有 Apache2 的 WebDAV)中获取修订号。
我试过这个:
svnversion http://nick:password@www.myhost.de/svn/test`
在浏览器中它照常工作(只是为了确保没有错别字等),但svnversion
说找不到目录。所以我认为我走错了路。
如何获得修订号?
svnversion仅用于工作副本,但查询存储库的一种方法是使用svn info,如下所示:
svn info http://nick:password@www.myhost.de/svn | grep Revision
在 Linux 上,如果您只需要修订号:
svn 信息http://nick:password@www.myhost.de/svn/test | grep '^修订:' | awk '{打印 $2}'
一个方便的 AWK 单行代码,只获取数字部分:
svn info http://nick:password@www.myhost.de/svn | awk '/Revision:/ { print $2 }'
svn info http://nick:password@www.myhost.de/svn/test
应该返回有关远程存储库的信息,包括 Revision
在新版本的 svn (1.9) 上,您可以:
svn info --show-item revision svn://...
18436
这应该只返回修订号。
如果您的语言环境不是英语,所有 grep 版本都会中断。
对于以前的版本,你可以试试
svn info --xml | grep '<entry' -3 | awk -F '=' '/revision="/ { print $2 }' | grep -o '[0-9]\+'
如果您可以拥有 xml2 包,则更好的方法是:
svn info --xml | xml2 | grep /info/entry/@revision | grep -o '[0-9]\+'