Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any tools to get code churn metrics for a Subversion repository? [closed]

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.

like image 590
Adam Avatar asked Sep 10 '08 15:09

Adam


People also ask

How do you measure code churn?

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.

What is churn in git?

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 is engineering churn?

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.


3 Answers

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.

like image 195
Nitin Bhide Avatar answered Oct 04 '22 11:10

Nitin Bhide


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).

like image 44
John Meagher Avatar answered Oct 04 '22 12:10

John Meagher


See svn-churn, a simple Python script to determine file churn and fix count of a Subversion repository.

like image 31
Martin Moene Avatar answered Oct 04 '22 12:10

Martin Moene