Provided by: cvs-mailcommit_1.19-6_all bug

NAME

       cvs-mailcommit - Send CVS commitments via mail

SYNOPSIS

       cvs-mailcommit [options] [version*]

DESCRIPTION

       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.

       You'll have to hook it into CVS for each module in a repository that you want to monitor via mail.  See
       INSTALLATION below

OPTIONS

       This program supports the following arguments.  When the arguments don't make sense the program won't do
       anything.

       -m address, --mailto address
             Send  the  mail to the specified address.  This option can be specified on the commandline multiple
             times.

       -d, --diff
             Generate unified diffs for all modified files.

       --full
             Include the entire fill for newly created files that were added to the repository.

       --maxlines nnn
             You can specify how many lines per file may be quoted in the resulting mail.  Limiting  the  number
             of  quoted  lines  may  be  useful  for  repositories with excessive changes that are similar.  The
             default is to copy 400 lines.

       -x address, --xloop address
             Include a special X-Loop header in the generated mail.  This is intended for users to  be  able  to
             filter CVS mails by a common header line.  The line will look like

             X-Loop: address

       --from address
             Generate a From:-line of the form

             From: CVS User foo <address>

             Otherwise  the  local  user  the  program  runs  under  will be used instead of address.  With this
             parameter you can ensure that all such mails will be sent with the same from  line,  which  may  be
             useful for moderated lists or some where only subscribers may write.

       --replyto address
             Try to redirect replies to CVS mails to another address by setting proper header lines such as

             Reply-To: address

             Mail-Followup-To: address

       -a address, --approved address
             Include  a special Approved:-line in the mail.  This header is intended for moderated mailing-lists
             to pass the SmartList moderation mechanism.  The created header will look like

             Approved: address

       -c version string, --cvs version string
             This option carries the CVS version info from CVS into the program.  It will be added automatically
             by CVS.  When installing this program into the loginfo file of a CVS repository, you will  need  to
             add the following option:

             --cvs %{sVv}

             If  you  want  to  test  this  program  manually you'll have to supply the module directory and the
             modified files including the old and new versions.  This will look like

             --cvs 'CVSROOT loginfo,1.1,1.2'

             This option is only usful for old-style CVS format strings (i.e. prior to  CVS  1.12.6).   You  can
             continue   using   old-style   format  strings  with  newer  cvs  if  you  write  %1{sVv}  and  set
             UseNewInfoFmtStrings=yes in CVSROOT/config.  For more recent versions of CVS you  should,  however,
             use the new --root and --dir arguments and place %{sVv} at the end of the commandline.

       --root cvs repository
             Specify  the  CVS repository directory.  This is normally done by the CVS server.  Prior to version
             1.12 the repository was transmitted to the log processor via the CVSROOT environment variable.  The
             parameter to this option is normally filled in by CVS using the %r format string:

             --root %r

       --dir module directory
             Specify the directory within the CVS  repository  in  which  directories  or  file  were  added  or
             modified.  The parameter to this option is normally filled in by CVS using the %p format string:

             --dir %p

CONFIGURATION FILE

       cvs-mailcommit  supports  an  additional  configuration  file  /etc/cvs-mailcommit.pl  so that hard-coded
       default values can be overwritten.  The file is included via require and hence  needs  to  contain  valid
       Perl code, which evaluates to true.  I.e. place 1; at the end of the file.

INSTALLATION

       The CVSROOT/loginfo 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 the $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>

NOTES

       The  --cvs  option  is  only  valid  for old-style CVS format strings prior to version 1.12.6 of CVS with
       %{sVv} or for new-style CVS format strings using the compatibility hack with %1{sVv}.

       For new-style CVS format strings for CVS version 1.12.6 or higher --cvs must not  be  used  anymore,  but
       instead  --root  and  --dir are required.  The version information %{sVv} must be added at the end of the
       command line.

EXAMPLE

       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

       The above configuration lines are valid only for old-style format strings.  With a more recent version of
       CVS  (1.12.6  or newer) you'll have to replace %{sVv} with %1{sVv} and set UseNewInfoFmtStrings to yes in
       CVSROOT/config.

       For new-style CVS format strings other parameters need to be  used  since  CVS  changed  the  syntax  and
       semantics.   You  must  not  use  the --cvs option anymore but need to use --root and --dir and place the
       version list at the end.  The last  example  converted  for  new-style  format  strings  looks  like  the
       following:

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

       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.

WARNING

       CVS does not support continuation lines (multiple lines per command) in the CVSROOT/loginfo file.  You'll
       have to write each filter in a single line of its own.

SOURCE

       http://www.infodrom.org/Infodrom/tools/cvs-mailcommit.html

Debian Project                                     2020-05-31                                  CVS-MAILCOMMIT(1)