Is there a way to perform a full text search of a subversion repository, including all the history?
For example, I've written a feature that I used somewhere, but then it wasn't needed, so I svn rm'd the files, but now I need to find it again to use it for something else. The svn log probably says something like "removed unused stuff", and there's loads of checkins like that.
Edit 2016-04-15: Please note that what is asked here by the term "full text search", is to search the actual diffs of the commit history, and not filenames and/or commit messages. I'm pointing this out because the author's phrasing above does not reflect that very well - since in his example he might as well be only looking for a filename and/or commit message. Hence a lot of the svn log
answers and comments.
I wrote this as a cygwin bash script to solve this problem.
However it requires that the search term is currently within the filesystem file. For all the files that match the filesystem grep, an grep of all the svn diffs for that file are then performed. Not perfect, but should be good enough for most usage. Hope this helps.
/usr/local/bin/svngrep
/usr/local/bin/svnrevisions
I usually do what Jack M says (use svn log --verbose) but I pipe to grep instead of less.
svn log -l<commit limit> | grep -C<5 or more lines> <search message>
svn log
in Apache Subversion 1.8 supports a new--search
option. So you can search Subversion repository history log messages without using 3'rd party tools and scripts.svn log --search
searches in author, date, log message text and list of changed paths.See SVNBook |
svn log
command-line reference.I have been looking for something similar. The best I have come up with is OpenGrok. I have not tried to implement it yet, but sounds promising.