Critical Skill
Critical Skill

Reputation: 2539

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 lsvob 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.

Upvotes: 11

Views: 28029

Answers (6)

Robin S
Robin S

Reputation: 1

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' \;

Upvotes: 0

ccubed
ccubed

Reputation: 26

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

Upvotes: 0

user3804598
user3804598

Reputation: 415

$ find -iname .svn

it should list all working directories on a host

Upvotes: 0

BobC
BobC

Reputation: 2058

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.

Upvotes: 5

Natim
Natim

Reputation: 18092

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.

Upvotes: 1

Adam Batkin
Adam Batkin

Reputation: 52984

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

Upvotes: 8

Related Questions