cvs-mailcommit

cvs-mailcommit is a helper application to CVS to help people keep track of CVS repositories via mail. It is hooked into the CVS system via the CVSROOT/loginfo file. It will read modification information from CVS via stdin and require version information via the commandline.

cvs-mailcommit will send differences of modified files or entire new files via mail to the denoted address. This can be a private address, a regular mail alias or a mailing-list.

Installation

The CVSROOTloginfo file controls where cvs commit log information is sent. The first entry on a line is a regular expression which must match the directory (alias module) that the change is being made to, relative to $CVSROOT. If a match is found, then the remainder of the line is a filter program that should expect log information on its standard input.

A loginfo line looks like

   <directory>    <command> --<option> --<option>

Assume you want to monitor changes in the CVSROOT module, then you may want to use the following line.

    CVSROOT	cvs-mailcommit --mailto master@host.org --from cvs@cvshost.com --cvs %{sVv} --diff --full

If you want to distribute changes in a module via a mailing list where only these log messages should appear you may have to add an X-Loop: or Approved: header line.

    webwml	cvs-mailcommit --mailto master@host.org --from cvs@cvshost.com --approved cvsmaster@cvshost.com --cvs %{sVv} --diff --full

To improve readability, the above lines were broken up into several lines using normal continuation lines. This is not supported by CVS. You will have to write it in one single line.

Source

CVS.

Download.

cvs -d :pserver:anonymous@cvs.infodrom.org:/var/cvs/infodrom login
cvs -d :pserver:anonymous@cvs.infodrom.org:/var/cvs/infodrom co scripts/cvs-mailcommit

The program comes with inline documentation. To read it all you have to do is execute perldoc cvs-mailcommit.