cvsdigest

Overview

This software provides a CVS commit notification system. Unlike other similar projects, cvsdigest sends mail batched with a specified interval. This reduces the number of messages significantly when committers tend to check in changes one by one.

This software consists of two scripts: cvsdigest_save and cvsdigest_send. The former is used to store log information when someone commits, and the latter is used to send digest information by email.

Please read the README for more information.

Download

FAQ

Why do you reinvent yet-another-wheel?!

I am sorry but it was necessary to make a new one. Here is the story.

I was looking for a good CVS notification system to use it for ERP5. Unfortunately, several developers tend to commit files one by one (I think the reason is that they use Cervisia) and ERP5 has many modules in the CVS, so I didn't want to make one message per commit. Instead, I wanted to collect many commits into a single message.

First, I checked DevGuy's CvsNotify. But this requires running a daemon, and I didn't want to use a daemon for security and maintainability.

Then, I tried Deluxe Loginfo. It looked good for my purpose. I had used it for a few days in a real system, and I abandoned it, because it was buggy. I suspect that this is because a log file is shared and opened without any lock. Indeed, it failed in notifying many changes. And, the generated mail was horrible for plain-text mail readers.

So I decided to write my own scripts. I thought this would be faster than fixing an existing project, and, in fact, it tooks me only some hours.

I believe that mine is better, mainly because I used Ruby instead of Perl, so the code is readable.

In addition, cvsdigest uses a Maildir-like format to store log information. So it has no risk of conflicts and no need to make a lock.

Links

© 2005 Yoshinori K. Okuji <okuji at enbug dot org>