SVN - Getting Helpful Information

We are using Subversion. We would like

1. search across all commit messages ? 2. monitor the commits on certain important files ? 3. identify files that are never/rarely used ? 4. identify files that are most frequently changed ? 5. identify files that most developers have accessed ? 6. identify files that have been committed together many number of times ? 

Using this data may consist of filtering out messages, such as these , to refactor the code and clean up the project of unused files.

Please suggest tools to achieve the same.

EDIT: We are launching SVN on Windows 2003.

+6
svn
source share
5 answers

Another tool worth paying attention to is ViewVC . The latest version has the ability to maintain a commit database. This allows you to search all commit messages and view a list of changes in a file or files in a user-filtered directory, time, or regular expression. It also supports RSS feeds that let you submit individual forms to individual files.

For 3, 4, and 5 in your list, StatSVN, which is listed in other answers, should be able to do this. For a commercial solution, there is FishEye from Atlassian.

In our repository, we use a combination of ViewVC and StatSVN, which was used to view the repository and search for commit messages with the latter to view statistics.

+3
source share

StatSVN should be able to accomplish most of this for you. However, you need to configure the scheduled task to run it through the repository, or you can integrate it into the Ant assembly if you use it.

Some of the more complex tasks, such as number 6 on your list, will likely require a special solution. Alternatively, since StatSVN is open source, you can make the necessary changes and send them back to the project.

+5
source share

What platform are you using? On linux, the operating shell of a script using sed should do the trick.

+1
source share

There is a SharpSvn library in the .NET environment that you can use. To achieve what you want, you will need to suck all the log messages and analyze them yourself.

+1
source share

You can do this with the Subversion command-line client and some scripts (Ruby or Python), but don't expect people to write code for you here. Implementation details will depend on how often you want to run statistics and how big your repo is.

When processing data from the Subversion command-line client, it may be easier for you to use the -xml option (accepted by the "log" and "info" commands), which displays the data in XML format.

 1. search across all commit messages ? 

Run "svn log -v -xml" and run a text search on the received XML (or parts of it). You can specify which set of commit messages you want to execute.

 2. monitor the commits on certain important files ? 

This is implemented using commit triggers. See Subversion Server Documentation.

 3. identify files that are never/rarely used ? 4. identify files that are most frequently changed ? 5. identify files that most developers have accessed ? 6. identify files that have been committed together many number of times ? 

All of them can be implemented using output from "svn log -xml" and subsequent processing of the received XML data.

+1
source share

All Articles