A Search Engine for Code
Introduction
CVSSearch searches for code fragments using CVS comments. Specifically, it takes
advantage of the fact that a CVS comment describes the lines of code involved
in the commit and that this description will typically hold for many future versions.
The CVS comment history greatly aids understanding
what the code does - including its motivation and history.
So CVSSearch offers a better search than just looking at the most recent version
of the code can.
CVSSearch is a CGI application, so you can easily make its powerful features
available within your organisation, or across the internet.
News
CVSSearch is really a dormant project at this point. The original developers
have moved on. I (Olly Betts)
updated it to work with more recent versions of tools and libraries, and fixed
some security issues, but I no longer use CVS and have been too busy with other
projects to update CVSSearch to work with other version control systems.
If you're seriously interested in taking over the project, feel free to
get in touch. My feelings from having worked with the code are that it
would probably be best to use the existing code as a working prototype and
rearchitect it. I'm happy to discuss if you want more of my thoughts.
Source Code
You can get the code from SVN:
svn co svn://svn.xapian.org/xapian/branches/1.0/xapian-applications/cvssearch cvssearch
Please read the installation and usage instructions in the README.
Demonstration
- KDE demo with 240 apps from official KDE CVS repository [Currently offline]
Papers
- "CVSSearch: Searching through Source Code using CVS Comments"
International Conference on Software Maintenance, pages 364-373, 2001. [ ps.gz / pdf ]
- "Code Search based on CVS Comments: A Preliminary Evaluation" (UNSW CSE TR 0106) [ ps.gz / pdf ]
Sample Queries
Try these conventional queries on various applications:
- configuration
- event
- menu
- paste
- drag drop
Also, some queries that you would not typically do using grep on code but that now become possible:
- bug fixes (find error-prone code and details of past bugs)
- port (find ports of various kinds)
- hack (find hacks that people have done in the past with this code)
- leak (look for code fragments prone to memory leaks)
- qt (qt related issues)
Contact
Please send all bugs/comments to Olly Betts.