26
votes

Co-worker is sure he checked in a file: foo_oustanding.dpr but isn't sure when/where (we have lots of "tools" and "utility" ancillary branches, lots of project branches, etc..
I need a way to search the entire repository for this file. I could check the whole source tree out to my HD, but that would take several hours. Is there a faster way? I tried the Repo Browser (Tortoise) and it didn't seem to have a search. I also thought about dumping the log, from the beginning of time. But that seemed silly.

I have, at my disposal:

  • Tortoise SVN 1.6
  • Subversion 1.5.6 running on Apache It runs on a Windows 2003 server.
  • Remote Desktop access to the server, with admin rights.
6
appears to be a duplicate of stackoverflow.com/questions/391718/…Eli Bendersky
oops - sorry, it IS a duplicate! However, I'm glad I asked anyway, as the answers here are better, particularly @Ken's example of the svn log command. Voted close.Chris Thornton

6 Answers

10
votes

If it was checked in fairly recently, you could do a verbose remote svn log from the top of the tree and see a history of all the commits across all the branches. You could then grep the output for the file and user name. (You would need the command line svn to do this.)

svn log -v -l 500 http://myserver/svn_root

13
votes

To see a list of all the files, send grep to text file in Command Prompt:

svn list -R myurl >> results.txt 
9
votes

With Subversion 1.8+ client:

svn log -v URL-OF-REPO-ROOT --search foo_oustanding.dpr

7
votes

Good question! There doesn't seem to be an official "search" function in Tortoise, but it seems to be possible to search the log in TortoiseSVN for file names, which can be enough in many cases.

2
votes

See this question and answers:

SVN Repository Search

svnquery is probably what you need.

1
votes

I search like this:

svn list -R url_to_repo | grep Maintain.jar

It outputs this:

trunk/Project/pkg/Release/Maintain.jar