题
在本地机器上,使用 svnversion
获取subversion存储库的版本号是没有问题的。现在我想从我的在线存储库(使用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 info http:// nick:password@www.myhost.de/svn/测试 | grep'^修订版:'| awk'{print $ 2}'
svn info http://nick:password@www.myhost.de/svn/test
应返回有关远程存储库的信息,包括Revision
一个方便的AWK单线程,仅获得数字部分:
svn info http://nick:password@www.myhost.de/svn | awk '/Revision:/ { print $2 }'
在新版本的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]\+'
不隶属于 StackOverflow