我正在寻找一种搜索整个subversion服务器的方法。
我已经获得了search within a repository的一块拼图。现在我需要为每个存储库执行此操作。
我必须从一些unix shell脚本(perl,bash等)
访问此列表答案 0 :(得分:40)
我还想在SVN中列出存储库。我在shell提示符下做了类似的事情:
~$ svn list https://www.repo.rr.com/svn/main/team/gaurav
Test/
Test2/
Test3/
Test4/
Test5/
Test6/
答案 1 :(得分:22)
如果通过apache和 SVNParentPath 指令启用svn,则可以在svn位置添加 SVNListParentPath On 指令以获取所有存储库的列表。
您的apache conf应该与此类似:
<Location /svn>
DAV svn
SVNParentPath "/net/svn/repositories"
# optional auth stuff
SVNListParentPath On # <--- Add this line to enable listing of all repos
</Location>
答案 2 :(得分:2)
您对SVN的访问不像Web服务那样工作吗?当我访问我的SVN服务器的顶级目录时,我得到的页面基本上是整个作品的目录。这是一个无序列表,我可以直接扫描。
编辑:以下是我将如何从命令行执行此操作:
wget http://user:password@svn-url/ -O - | grep \<li\>
答案 3 :(得分:0)
如果你的服务器是Apache,你应该 能够配置它来查看 存储库列表viewvc - 这是最基本的,还有更多 存在复杂的接口,但这是 不是你的目的。
在某些版本中,ViewVC是标准安装的一个选项 现在,例如来自Collabnet。
编辑:不管我上面的想法,Peter有一种更简单的方式来发送存储库列表。
从那里,你将不得不:
不幸的是,在这种情况下,我无法想到更简单的事情。
有关如何从HTML pages in Python提取文本的SO示例,这是一个很好的选择,因为Python也有SVN绑定,执行存储库搜索 - 您仍然可以直接调用svn
如果您愿意,可以从Python开始。
如果Python不是你的茶,你将不得不用GNU工具(wget,然后解析工具或现有的包)处理不同的东西 - 我在那里帮助不大,Carl给了你一些这篇文章中的更多细节)。
答案 4 :(得分:0)
如果您了解Java的方法,可以使用SvnKit进行浏览,搜索,天知道您的Subversion服务器是什么。
之后,您可以打包程序并通过Ant任务或shell脚本调用它。
这是一个非常“蛮力”的解决方案,但是一旦掌握了SvnKit,你就可以做很多很酷的事情。
答案 5 :(得分:0)
有时您可能希望检查更新回购时间的时间戳,为了获得这个方便的信息,您可以使用svn -v(详细)选项,如
svn list -v svn://123.123.123.123/svn/repo/path
答案 6 :(得分:0)
在我的公司,他们没有将服务器配置为提供存储库列表,因此svn list
适用于特定存储库,但不能更高级别列出所有存储库。
然而,他们安装了FishEye,它为您提供了一个列出存储库的GUI https://www.atlassian.com/software/fisheye
这是一个付费选项,所以并不适合所有人,但功能很好。