cvsmail
—
add cvsweb.cgi links to FreeBSD commit mail
cvsmail |
[-CcdfGgqv ] [-u
url] [-U
url] |
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 by cvsmail
is
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
-d
and
-g
are also specified.
-g
- This option causes all the URLs for diffs, and, if
-d
is 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.cgi
script. The
default is “http://cvsweb.FreeBSD.org/”. Please note that
the argument to this must include the trailing
slash.
-U
- Specify an additional
cvsweb.cgi
script, to be
used in addition to the default. As with the -u
flag, 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⟩