I'm looking for any tools that can give you code churn metrics (graphs and charts would be even better) for a Subversion repository.
One tool I know of is statsvn - a Java tool that creates some HTML reports and some code churn metrics. Statsvn reports the number of lines modified (churned) by user over time, some descriptive stats on LOC per file and folder/subfolder, etc.
I would like to know code churn in order to get a better idea of the state of the project. Idea behind this inspired by the MS research: Use of Relative Code Churn Measures to Predict System Defect Density
In a nutshell, the more that source code is churning (changing, whether adding new lines, deleting, changing,etc) the higher the probability that defects are being introduced into the system. The MS research paper says that the number of defects produced can be predicted based on a number of relative code churn measures.
I wanted to know if there are any others that are maybe open source, extensible, etc.
Code churn is a measure or indication of how often a file changes. It typically refers to how often a developer throws out code (such as a function, file, or class) within the first 2-3 weeks of writing. Churn levels vary between team members, different levels of experience, and projects.
If you are using git you can use this git-churn script to see how many times you have changed a file. Each tool will have its own way of measuring code churn, but all the tools will be checking that for a given period, how many lines of code have changed (been modified, added, or removed) in the system.
What Code Churn Is. Code churn, or code that is rewritten or deleted shortly after being written, is a normal part of the development process. Engineers often test, rework, and explore various solutions to a problem —especially towards the beginning of a project when the problem doesn't have a clear solution yet.
I have written a tool called 'svnplot' (which I admit was inspired by the output of StatSVN). Its written in python and available on Google code. http://code.google.com/p/svnplot. You can see the sample output at http://thinkingcraftsman.in/projects/svnplot/index.htm
The details/output are not as elaborate as 'fisheye'. Basically it converts the Subversion log history into a 'sqlite' database and then queries sqlite database to generate graphs. You can write your own queries using the created sqlite database.
See if it works for you.
If you are willing to go the commercial route check out FishEye from Atlassian (also see their demo site ). FishEye also supports adding plugins (though this does not appear to be very well supported at this time).
See svn-churn, a simple Python script to determine file churn and fix count of a Subversion repository.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With