列出所有SVN存储库

时间:2009-10-09 02:56:07

标签: svn repository listings

在subversion中是否有一个命令列出在特定主机上注册的所有可用存储库? 例如,在clearcase中,“cleartool lsvob”将为我提供给定区域中所有版本化数据库的列表。我在颠覆中找不到类似的东西。

由于

6 个答案:

答案 0 :(得分:6)

没有。每个subversion存储库都是独立的,对其他存储库一无所知。没有办法找到所有的subversion存储库。

我们将所有存储库保存在标准位置(/data/svn),并且可以轻松地以编程方式列出所有存储库:

ls /data/svn

或者来自远程系统:

ssh svn ls /data/svn

答案 1 :(得分:5)

SVN repos有一个独特的结构(/ conf,/ hooks,/ db,/ locks),所以如果它的组件是一个开头就搜索一个。

如果安装了locate / updatedb且当前:

locate /db | grep /db$

或通过详尽的搜索:

find / -type d | grep /db$

更复杂的搜索将检查完整的组件集。

答案 2 :(得分:1)

您可以在服务器上的任何位置创建subversion repos,它们不会相互链接。

在我的服务器中,我将所有内容放在/ var / svn /中,然后我可以使用ssh列出所有存储库并列出此存储库。

答案 3 :(得分:0)

$ find -iname .svn

它应该列出主机上的所有工作目录

答案 4 :(得分:0)

如果svn服务器是本地服务器,则对于Shell中的Linux,请使用以下命令

#ps aux|grep svnserve/media/Hitachi_boot_disk/Repositories

这将向您显示svn服务是如何启动的。 看起来像这样:

/usr/bin/svnserve -d -r /media/Hitachi_boot_disk/Repositories

-r后面的路径指定所有存储库的路径

#cd /media/Hitachi_boot_disk/Repositories
#ls

这将列出此服务器下的所有存储库

答案 5 :(得分:0)

如果将需求放宽到较小的一组可疑目录,此命令可用于编写脚本以获取一堆svn存储库的基本目录,但是对于搜索/来说太慢了。如果您需要整个系统,我将寻求BobC的解决方案。此方法适用于存储库而不适用于工作副本。

find <directories> -type d -exec bash -c 'if svnlook info "{}" 1>/dev/null 2>&1; then echo "{}"; fi' \;