在本地机器上,使用 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]\+' 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top