views:

208

answers:

1

Is there a way to search for a file in a subversion repository?

Something similar to Unix' find command, with which I can find the location of a file in a repository.

I know there is svn list, but this gives me a list of all the files in a directory. I want to find the directory a file is in.

+8  A: 

You can use the following command, together with a grep, on the server:

svnlook tree --full-paths <repository path> | grep <file>

That's the fastest option if you need to look into a big repository.

If you only have access to the client side, again with a grep:

svn list -R <URL> | grep <file>

should do what you need.

Both will recurse through the directories, with the client you may start elsewhere than the root of the repository though, but it will be somewhat slower as the information has to go through the network (possibly).

Edit: Also, both gives you the option of looking into a past revision (should the file be deleted):

  • svn list -R -r <revision/revision range> <URL> and
  • svnlook tree -r <revision> <path>.

Simply type svn help list or svnlook help tree for further details.

RedGlyph
As a comment, I still wish there were a real `find` command, simply because it would make sense.
RedGlyph
Can this work for branches/trunks?
lamcro
Yes, `svnlook` starts from the root and lists _everything_. `svn list` allows you to choose the starting point, be that the name of your repository (root) or a specific subdirectory like a branch.
RedGlyph