SvnQuery is a fast full text search engine for subversion repositories. It searches every file in every revision. Not only the content of a file is indexed, but also its complete metadata like path, author, comments and properties.
Two simple Google-like frontends are provided, but it is expected that the query library and indexing mechanism can be reused in other frontends, e.g. a web service or a Visual Studio Plug-In.
SvnQuery is implemented in C# 3.0 and ASP.NET is used for the web frontend. The full text search is done by Lucene.Net which delivers an astonishing performance.
The interface to subversion is isolated so that the svn command line client or something like SharpSvn can be used as an implementation. Porting to Java using the original implementation of Lucene should be easy.
Download a self running demo of SvnQuery with an already created index. As a prerequisite you need the .Net Framework 3.5.
The demo of SvnWebQuery uses the ASP.NET development server to host the SvnWebQuery web application and starts a
browser that displays the Web UI.
SvnFind is a typical windows client which can directly query the index files. No need to use a webserver at all.
If you want to recreate or update the index look into index_create.cmd and index_update.cmd. Note that because of their size the downloads are hosted on atombrenner.de. See the Demo Quickstart
You can download the latest stable release from here:
The documentation section contains detailed instructions of how to setup and integrate with your current repository. More information about releases can be found in the release notes.
Visit the Wiki if you like to modify the source or contribute to the development.
The current version 220.127.116.11 is well tested and working in several production environments. The following features are planned for a 2.0 version.
- provide an installer for IIS 7 or higher
- rework the index format so that copies can be stored natively inside the index. This would allow cheap indexing of tags and branches.
- build a solid index faster for a given revision (don't start index at the beginning)