Introduction: StatCVS is a handy tool for creating a concurrent version system (Concurrent versions System-cvs) repository activity diagram. In this article, developer Tom Copeland will explain how to install, run StatCVS, outline the reports that are generated, and then describe how to generate reports for multiple repositories, StatCVS Insider and limit, and more.
If you're going to take on a software project that has been running for years, how do you get to know about the history of the project development? The best approach may be to talk to developers who have been involved in the project, but it's easy to say and difficult to do. The original developers are usually transferred to other projects, and it's hard to find them. You can view the release frequency, although this may be controlled by a non-technical mandatory rule (sometimes just for "we want to make a release at the end of this fiscal year"). You can view bugs and feature request trackers, and you can also mine information in open and closed bug discussions. Or you can go directly to the source code history and use tools such as StatCVS to see which records have been made and who modified them. I've been using StatCVS on a variety of big projects for years now, and it's been a good report for a long time. In this article, you will demonstrate how to set up, run StatCVS on a project, read the reports it generates, and where StatCVS needs to improve.
Install StatCVS
StatCVS is a Java program that requires support from JDK 1.4 or later. Installing StatCVS from the command line is easiest: Just download the latest release (see Resources) and extract it into a directory; I use the/usr/local/statcvs/directory. And, as shown in Listing 1, I also created a symbolic link called Statcvs, which is linked to the version that was just installed. This saves some typing time in the future, and more importantly, you can switch between different versions of StatCVS as long as you change the symbolic link to point to the version you want to use.
Listing 1. Symbolic links for StatCVS
[root@hal local]# pwd
/usr/local
[root@hal local]# ln -s statcvs-0.2.2 statcvs
[root@hal local]# ls -l | grep statcvs
lrwxrwxrwx 1 root root 13 Jan 13 14:27 statcvs -> statcvs-0.2.2
drwxrwxr-x 2 root root 4096 Oct 13 23:32 statcvs-0.2.2
-rw-rw-r-- 1 tom tom 1344753 Jan 13 13:49 statcvs-0.2.2.zip
If you list the files in the Statcvs directory, you can see that there are no support jar files (supporting jar file) that apply to Statcvs. The only JAR file is Statcvs.jar, which contains the only Third-party library that Statcvs uses: Jfreechart. This approach makes it easier to start understanding StatCVS because there is no need for more knowledge about classpath.
Run StatCVS
To demonstrate how StatCVS works, you need to find a project with an interesting CVS history and generate some activity reports. DeveloperWorks's Project Jikes (see Resources) has been in place for a while, with a large number of developers and a common CVS repository, so it's a good example.