开发者

Listing all SVN repositories

In subversion is there a command to list all the available repositories registered on a particular host?

Eg. in ClearCase, a cleartool lsv开发者_C百科ob would give me the listing of all the versioned databases in a given region. I have not been able to find anything akin to this in subversion.


No. Each subversion repository is independent and knows nothing about the others. There would be no way to locate all of the subversion repositories.

We keep all of our repositories in a standard location (/data/svn) and can easily and programatically list all of the repositories:

ls /data/svn

Or from a remote system:

ssh svn ls /data/svn


SVN repos have a distinct structure (/conf, /hooks, /db, /locks), so searching for one if its components would be a start.

If locate/updatedb is installed and current:

locate /db | grep /db$

Or by an exhaustive search:

find / -type d | grep /db$

A more sophisticated search would check for the full set of components.


You can create subversion repos anywhere on your server and they are not linked to each other.

In my server I put everything in /var/svn/ then I can list all the repository using ssh and listing this repository.


$ find -iname .svn

it should list all working directories on a host


If the svn server is local,for Linux from shell use these commands

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

This will show you how the svn service was started. It will look something like:

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

The path following the -r specifies the path to all Repositories

#cd /media/Hitachi_boot_disk/Repositories
#ls

This will list all the repositories under this server


If you relax the requirement to a smaller set of suspected directories, this command is useful for scripting to get the base directories of a bunch of svn repositories, but it's too slow for searching /. If you need entire system I'd pursue BobC's solution. This method works on repositories and not working copies.

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜