RCSPLOT - RCS/CVS Archive plotter


What is RCSPLOT?

RCSPLOT is a perl script that generates plots of RCS archive activity. The script takes a list of RCS files/directories and generates plots of any check-in activity over the period specified. Plots are generated per RCS file, with summary plots per directory. Hierachies of RCS directories are also supported (as per CVS). Note, however that I haven't tried it out on a CVS archive as yet so there may be some gotcha's (feedback welcome!).

Here is a screenshot of the sort of output produced by RCSPLOT.

Here's the output produced from running RCSPLOT on a sample test archive. It demonstrates the default browser interface produced by RCSPLOT in more detail. Additional command line parameters can be used to restrict the output produced further.

The script takes standard rlog parameters. So, like rlog, it can be used to generate data on changes between 2 software releases, data specific to 1 or more authors, or data over the whole life of a project.

A single date ordered log of all check-in's over the specified period is also generated, along with a standard 'rlog' version log per archive file.

RCSPLOT also produces plots of author activity in each archive directory. So you can quickly see who's been active and where.

A number of html files are created to make the plots and data easy to navigate and view using a web browser (frames support required).

Why all the graphs?

RCSPLOT allows you to visualise archive activity. It allows you to quickly see the areas where a lot of deletion and potential rewrite activity is occuring in an archive. These areas might benefit from better definition on future projects. The more red (lines deleted) I see in an archive plot, the more I start to worry about what's happening in that archive.

RCSPLOT may help in estimating resources on future projects. Especially if you have a number of similar projects. It allows you to see the peaks and trough in archive activity.

It also allows you to quickly see who's been most active in an archive. Note these people may, or may not be the most productive!

If people use 'indent', or an equivalent program, to reformat source files, then the data produced by RCSPLOT will be pretty meaningless. At the end of the day the plots produced by RCSPLOT needs to be read by someone who knows the project well and can interpret the data produced with that in mind.

What does it do with binary files?

I haven't tried it out on archives that contain binary files, but I doubt that the plots would be particularily useful, apart from highlighting that archive activity has taken place.

So where can I download RCSPLOT, and what are it's dependancies?

You can find the single file, RCSPLOT perl script here. RCSPLOT was developed under Linux using,

It may work with older, or newer versions of the same packages, and with other O/S's. (If you find RCSPLOT works with other versions of the above, or other O/S's, please send me the details so that I can include the information here.)


Please e-mail me if you find this script useful. If you have a bug fix, some additional notes, or an enhancement that you think might be useful to other users, e-mail me a patch against the current release and I'll consider including it in a future release.