cvsdigest

Overview

  This is cvsdigest. Welcome.

  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.

Requirement

  * Ruby 1.6 or later. See <http://www.ruby-lang.org>.

Setup

  You can put the scripts in anywhere. Here, I assume that they are
  under the directory /usr/bin:

    # install -m 0755 cvsdigest_send cvsdigest_save /usr/bin

  First, make a location to store log information. The default is
  /var/lib/cvsdigest:
  
    # mkdir /var/lib/cvsdigest
  
  cvsdigest supports multiple projects, and the default project is
  called simply "default":

    # mkdir /var/lib/cvsdigest/default

  Since cvsdigest uses a Maildir-like format, you need to create
  three sub-directories:

    # mkdir /var/lib/cvsdigest/default/{tmp,new,old}

  Make sure that these directories are writable for CVS users. For
  example:

    # chown -R cvs.cvs /var/lib/cvsdigest
    # chmod -R 0770 /var/lib/cvsdigest

  Secondly, modify the file loginfo in the module CVSROOT:

    $ cvs -d <your cvsroot> checkout CVSROOT
    $ cd CVSROOT
    $ <use your favorite editor to modify loginfo>
    $ cvs commit -m 'Add cvsdigest entries.' loginfo

  An entry for cvsdigest is like this:

    ^<module name>  /usr/bin/cvsdigest_save %{sVv}

  Lastly, make a crontab entry for cvsdigest. You must decide how often
  cvsdigest_send is invoked. If the interval is too short, you will get
  many messages. If it is too long, you won't get nofications immediately.
  
  This is an example:

    7,27,47 * * * *    /usr/bin/cvsdigest_send \
                         --from=nobody@yourdomain.com \
                         --url=http://cvs.yourdomain.com/ \
                         cvsdigest@yourdomain.com

  --from specifies the From: address of digest mail, --url specifies
  a cvsweb URL (optional) and the last argument is the To: address.

New projects

  When you want to make a new project, make directories
  /var/lib/cvsdigest/<project name>/{tmp,new,old}. Again, make sure that
  CVS users can write to these directories.

  Then you can specify the project name to cvsdigest_save and
  cvsdigest_send by the option --project.

More information

  Run cvsdigest_save and cvsdigest_send with --help.

  Also, you can get information from <http://www.nongnu.org/cvsdigest/>.

License Term

  This software is under the term of GNU General Public License (GPL).
  Read the file COPYING for precise information.

Changes

  2005-03-18 Yoshinori K. Okuji

    * Change the web site to Savannah.

  2005-02-08 Yoshinori K. Okuji

    * Disable a debug message.

    * Use PROGVER instead of VERSION as Ruby uses VERSION.

    * Use a regexp correctly to split a log message.

    * Use "cvsdigest" as the real name of the From: address.

  2005-02-06 Yoshinori K. Okuji

    * The first release.
