cvsmail — add
    cvsweb.cgi links to FreeBSD commit mail
  
    | cvsmail | [ -CcdfGgqv] [-uurl] [-Uurl] | 
cvsmail can be used from a
    procmailrc(5)
    file to add cvsweb.cgi links to FreeBSD commit mail, allowing you to easily
    view the diffs for a particular commit.
The following flags are accepted:
  - -C
- Print diffs or links to diffs in context diff format, rather than the
      default unified diff format.
- -c
- Print links to human-readable, coloured diffs, instead of the default
      plain diffs.
- -d
- Include diffs in the output, as well as links to the diffs.
- -f
- Munge the data so that a line starting with “From” and a
      space has a ‘>’ character
      insterted before it. This prevents some MUAs from assuming that line is
      the start of a new message if the mailbox is in traditional mbox format.
      It will also insert a dummy “From” line as the first line of
      the message if the first line read bycvsmailis
      not already a “From” line.
- -G
- This option causes the URLs for diffs to be included both after the
      individual change lines,
      and before
      the actual diff. This option only has an effect if both
      -dand-gare also
      specified.
- -g
- This option causes all the URLs for diffs, and, if
      -dis specified, the diffs themselves, to be
      included at the end of the output, rather than immediately after the
      ``changes'' line for that file.
- -q
- Operate quietly. This is the default if stderr is not a terminal.
- -v
- Operate more verbosely. This is the default is stderr is a terminal.
- -u
- Specify an alternate cvsweb.cgiscript. The
      default is “http://cvsweb.FreeBSD.org/”. Please note that
      the argument to this
      must
      include the trailing slash.
- -U
- Specify an additional cvsweb.cgiscript, to be
      used in addition to the default. As with the-uflag, the argument to this flag must include the trailing slash.
The following
    procmailrc(5)
    rule might be used.
:0
* ^Sender: owner-cvs-all@freebsd.org
{
  :0
  * X-FreeBSD-CVS-Branch:.*RELENG_4
  | cvsmail -f $MAILDIR/lists/freebsd-cvs-stable
  :0
  * X-FreeBSD-CVS-Branch:.*RELENG_
  | cvsmail -f $MAILDIR/lists/freebsd-cvs-other
  :0
  | cvsmail -f $MAILDIR/lists/freebsd-cvs-all
}
 
This will separate your commit mail into separate folders based on
    the CVS branch affected. If you are a committer, you might prefer a rule
    more like this.
:0
* ^Sender: owner-cvs-committers@freebsd.org
{
  :0
  * Subject:.*cvs commit:
  {
    :0
    * X-FreeBSD-CVS-Branch:.*RELENG_4
    | cvsmail -f $MAILDIR/lists/freebsd-cvs-stable
    :0
    * X-FreeBSD-CVS-Branch:.*RELENG_
    | cvsmail -f $MAILDIR/lists/freebsd-cvs-other
    :0
    | cvsmail -f $MAILDIR/lists/freebsd-cvs-all
  }
  :0
  lists/freebsd-committers
}
 
Ben Smithurst
    ⟨ben@smithurst.org⟩