如何从Subversion服务器显示存储库列表

我正在寻找一种方法来search整个颠覆服务器。

我已经有了一个在存储库中search的难题。 现在我需要为每个存储库执行此操作。

更新:

我必须从一些unix shell脚本(perl,bash等)访问这个列表。

我也在寻找在SVN中列出仓库。 我在shell提示符下做了这样的事情:

~$ svn list https://www.repo.rr.com/svn/main/team/gaurav Test/ Test2/ Test3/ Test4/ Test5/ Test6/ 

如果你通过apache和SVNParentPath指令来启用svn,你可以添加一个SVNListParentPath On指令到你的svn位置来获取所有的存储库列表。

你的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> 

你对SVN的访问不就像Web服务吗? 当我访问我的SVN服务器的顶级目录时,我得到一个本质上是整个作品的目录的页面。 这是一个无序列表,我可以简单地扫描。

编辑:这是我将如何从命令行执行它:

 wget http://user:password@svn-url/ -O - | grep \<li\> 

有时你可能希望检查更新回购时间的时间戳,为了得到这个方便的信息,你可以使用svn -v(verbose)选项

 svn list -v svn://123.123.123.123/svn/repo/path 

如果你的服务器是Apache,你应该可以configuration它来查看存储库列表viewvc – 这是最基本的,其他更复杂的接口存在,但这不是你的目的。

在某些版本中,ViewVC是现在的标准安装选项,例如从Collabnet。

编辑 :不要忘了我以前的想法, 彼得有一个更简单的方式发送存储库列表。

从那里,你将不得不:

  • 获取HTML页面,
  • 提取列表和
  • 处理它的个人存储库search。

不幸的是在这种情况下,我想不出更直接的东西。

还有一些关于如何从Python中的HTML页面中提取文本的例子,这将是一个很好的select,因为Python也有SVN的绑定来执行存储库search – 如果您愿意的话,您仍然可以直接从Python调用svn

如果Python不是你的一杯茶,那么你将不得不用GNU工具(wget,然后parsing工具或者现有的软件包 – 我在这里帮不了多less忙, Carl在这篇文章中给了你更多的细节)做了不同的处理。

如果你知道Java的方法,你可以使用SvnKit来浏览,search,并且知道你的Subversion服务器是什么。

之后,您可以打包您的程序并通过Ant任务或shell脚本调用它。

这是一个相当“蛮力”的解决scheme,但是一旦你掌握了SvnKit,你可以做很多很酷的事情。

在我的公司,他们没有configuration服务器来提供存储库列表,所以svn list工作在一个特定的存储库,但不是在更高的层次上列出所有的存储库。

然而,他们安装了FishEye,它提供了一个列出存储库的GUI https://www.atlassian.com/software/fisheye

这是一个付费选项,所以并不适合所有人,但function还是不错的。