CVSAnaly

Posted on enero 3, 2011

0


Today I’m going to talk about one helpful tool called CVSAnaly that always could come in handy when studying a software repository is about.

In order to show you the power of this tool I’m going to talk about an excersise we did on the master and how CVSAnaly helped me, as an example. The exercise consisted on trying to found out who was the most important developer of Eyes of GNOME.

So basicaly CVSAnaly is a tool that helps you store a log from SCM(CVS, SVN or Git) into a MySQL database, you can find this tool here. The way to use it is very simple, first you would have to create the database where you want to put the repository info like this

mysqladmin -­u root -­proot create cvsanaly

then you just use the cvsanaly2 command giving to it the database parameters and in the end the uri parameter like this

cvsanaly2 –­­db­-user root ­­–db-­password root [eyesofgnome uri]

after doing this then you are ready to go and start working with mysql, since we will have our repository in a database with the following tables

So for example now that we got this in MySQL I started to get the 5 commiters who had more commits per year with

select count(*) as commits, people.name
from scmlog, people
where YEAR (date) = 2011
and scmlog.committer_id = people.id
group by (committer_id)
ORDER BY commits ASC;

with that list per year I looked for the ones who did more commits and finally reduced that list down to 4 guys who were the ones that did most of the commits in all the project, so finally I looked which one of this four were the ones that did more commits during the project with this

select count(*) as commits, people.name
from scmlog, people
where scmlog.committer_id = people.id
and people.name like ‘Jens Finke%’
group by (committer_id)
ORDER BY commits ASC;

and this is how I finally got the developer more important for this project.

So with this example we could get to se how easy is to explore all the information a repository has after using a tool like CVSAnaly.

Tagged: ,
Posted in: Uncategorized