CVS Commit Notification

Never mistake activity for achievement.

John Wooden


These are the scripts that I use for CVS commit notification via e-mail, replacing log and log_accum that come with CVS. Merging of commits across multiple directories into a single message is supported, as is diffstat output over the changes and a variety of other options controlling the formatting of the message. The goal was to turn the log output of CVS into something more easily readable and understandable.

While I wrote these scripts for Stanford's needs, they're reasonably configurable and have proven useful in a variety of non-Stanford projects. Over time, various people have requested or contributed additional useful features. At this point, they support merging commits across multiple directories, including diffstat output, including URLs for cvsweb, and including full diffs. There are a wide variety of options available governing what is included in the mail message.

There are two scripts, cvslog and cvsprep. Unless you want to merge commits across multiple directories, you only need cvslog. For installation instructions, see the cvslog documentation, which also contains usage examples.

Here is a sample of cvslog's output (without most of the options turned on).

If you're looking for something similar for Subversion, see svnlog.


CVS 1.10 or later is required so that CVS will pass the correct information to cvslog. Perl 5.004 or later is required, as is sendmail or any reasonable work-alike.

In order to get summaries of the changes as seen in the above sample, you will need to separately obtain and install diffstat (which is written in C, but is very easy to compile).


The programs:

cvslog 1.62 2013-09-22 Download
cvsprep 1.6 2004-06-12 Download



Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007 Board of Trustees, Leland Stanford Jr. University.

These programs are free software; you may redistribute them and/or modify them under the same terms as Perl itself. This means that you may choose between the two licenses that Perl is released under: the GNU GPL and the Artistic License. Please see your Perl distribution for the details and copies of the licenses.

Last modified and spun 2016-10-27