SVNSearch

Last modified by Vincent Massol on 2019/06/11 10:11

Dec 26 2008

Eirik Bjørsnøs is the creator of SVNSearch, a tool to analyse your source repository (it supports SVN, CVS, Perforce and Git) and display its content using different views.

I have known about SVNSearch for several years now and I've always found this tool one of the best of its kind (I think it's ahead of the competition especially in the domains of speed, scalability and easiness or use). However I don't think the tool has received the publicity it deserves so I'll add my stone to help promote it.

So let's review some of its features by looking at the SVNSearch XWiki repository.

Amazingly Fast

The search are real fast and SNSearch supports real time updates: Go to your repository page on SVNSearch and make a commit. You'll see it appear in almost real time without doing any refresh (thanks to Cometd)

Dashboard View

You get a Dashboard-like view of any part of your repository (you get the same view with the graphs even down to the file level) with commits and graphs. Note that there's even a JIRA integration since the commits mentioning JIRA are hyperlinked automatically.

  • Main Dashoard view (truncated) showing that 3 persons have worked on this Macro.java file dashboard-main.png

\

  • File-level Dashboard view (truncated) dashboard-file.png

Powerful Search

You get a really powerful search form with Ajax-style autocomplete on path, filename, author and JIRA issues.

  • "Did you mean" suggestions when searching on log content. This is based on actual content, not a dictionary, so for example searching for "explicitly" can suggest "explicitely" even though "explicitly" is correct didyoumean.png

\

  • Autocompletion on repository path autocomplete-path.png

\

  • Autocompletion on file. Note the CamelCase autocomplete: "SMI" offers "SpaceManagerImpl.java" autocomplete-file.png

\

  • Autocompletion on Authors autocomplete-author.png

\

  • Autocompletion on file types autocomplete-type.png

\

  • Autocompletion on JIRA issues autocomplete-issue.png

Activity Graphs

Useful to know the health of your project and how it progresses.

  • Activity by Path (you can drill down by clicking in it) activity-path.png

\

  • Activity over time (you can drill down by clicking in it) activity-time.png

\

  • Activity by year (you can drill down by clicking in it) activity-date.png

\

  • Activity by author (you can drill down by clicking in it) activity-author.png

\

  • Committers over time activity-committers.png

\

  • Activity by day activity-datetime.png

\

  • Activity by hour activity-hour.png

\

  • Committers Turnover activity-turnover.png

The last Committers Turnover graph needs to be viewed dynamically to better understand it. Since it's a bit complex here's how Eirik explains it: 

It's an visualisation of the composition of the development team over time. The algorithm goes like this: * Partition the timeline (first commit to last commit date) into 10 equally large partitions. * For each partition, identify the 20 percent most active committers * For each partition, create a graph showing how the relative activity of that group's changes over time

So what I end up with is a set of ten line graphs, each showing the relative amount of commits done by the group of most active commiters from each partition.

To be honest it's difficult even to explain it, so I can understand that people don't understand it intuitively emoticon_smile

An way to look at it is to say that horizontal lines indicate a stable core group, while diagonal lines means that the core group is changing. So it can be used as an indicator of project health.

If you mouse-over the chart you should be able to see the actual contribution by each developer in each 20% group.

It's all based on a paper called "Contributor Turnover in Libre Software Projects", by Gregorio Robles and Jesus M. Gonzalez-Barahona.

Timeline View

This is a very useful graph for viewing each committer activity over time.

timeline.png

Collaboration View

Displays committers relationship (i.e. files they've worked together on) using a dynamic graph (you can zoom in/out, move nodes). Redish colors means recent activity while Bluish colors means old activity.

collaboration.png

Diffs

SVNSearch can show commit list for a given file and also the diffs for each commit.

diff.png

Other Features

  • RSS feed for any search. This means you can follow development in a subproject or branch using any RSS reader.
  • The from and to fields can actually contain revision ranges as well as date ranges.
  • Author plots are sortable by name, first commit, last commit and number of commits.
  • You can select multiple authors for comparison by separating them with a space or a comma.

Last I heard Eirik was running a private beta and wanted to sell this tool at some point in the future while keeping a free version on svnsearch.org for open source projects.

Created by Vincent Massol on 2008/12/26 10:12