在subversion中是否有一个命令列出在特定主机上注册的所有可用存储库? 例如,在clearcase中,“cleartool lsvob”将为我提供给定区域中所有版本化数据库的列表。我在颠覆中找不到类似的东西。
由于
答案 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' \;