.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CVS-MAILCOMMIT 1" .TH CVS-MAILCOMMIT 1 "2020-05-31" "Debian Project" "Debian GNU/Linux" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" cvs\-mailcommit \- Send CVS commitments via mail .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBcvs-mailcommit\fR [options] [version*] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBcvs-mailcommit\fR is a helper application to \s-1CVS\s0 to help people keep track of \s-1CVS\s0 repositories via mail. It is hooked into the \s-1CVS\s0 system via the \fB\s-1CVSROOT\s0\fR/\fIloginfo\fR file. It will read modification information from \s-1CVS\s0 via \fBstdin\fR and require version information via the commandline. .PP \&\fBcvs-mailcommit\fR will send differences of modified files or entire new files via mail to the denoted address. .PP You'll have to hook it into \s-1CVS\s0 for each module in a repository that you want to monitor via mail. See \fB\s-1INSTALLATION\s0\fR below .SH "OPTIONS" .IX Header "OPTIONS" This program supports the following arguments. When the arguments don't make sense the program won't do anything. .IP "\fB\-m\fR \fIaddress\fR, \fB\-\-mailto\fR \fIaddress\fR" 6 .IX Item "-m address, --mailto address" Send the mail to the specified \fIaddress\fR. This option can be specified on the commandline multiple times. .IP "\fB\-d\fR, \fB\-\-diff\fR" 6 .IX Item "-d, --diff" Generate unified diffs for all modified files. .IP "\fB\-\-full\fR" 6 .IX Item "--full" Include the entire fill for newly created files that were added to the repository. .IP "\fB\-\-maxlines\fR \fInnn\fR" 6 .IX Item "--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. .IP "\fB\-x\fR \fIaddress\fR, \fB\-\-xloop\fR \fIaddress\fR" 6 .IX Item "-x address, --xloop address" Include a special \fBX\-Loop\fR header in the generated mail. This is intended for users to be able to filter \s-1CVS\s0 mails by a common header line. The line will look like .Sp X\-Loop: \fIaddress\fR .IP "\fB\-\-from\fR \fIaddress\fR" 6 .IX Item "--from address" Generate a \fBFrom:\fR\-line of the form .Sp From: \s-1CVS\s0 User foo <\fIaddress\fR> .Sp Otherwise the local user the program runs under will be used instead of \fIaddress\fR. 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. .IP "\fB\-\-replyto\fR \fIaddress\fR" 6 .IX Item "--replyto address" Try to redirect replies to \s-1CVS\s0 mails to another address by setting proper header lines such as .Sp Reply-To: \fIaddress\fR .Sp Mail-Followup-To: \fIaddress\fR .IP "\fB\-a\fR \fIaddress\fR, \fB\-\-approved\fR \fIaddress\fR" 6 .IX Item "-a address, --approved address" Include a special \fBApproved:\fR\-line in the mail. This header is intended for moderated mailing-lists to pass the SmartList moderation mechanism. The created header will look like .Sp Approved: \fIaddress\fR .IP "\fB\-c\fR \fIversion string\fR, \fB\-\-cvs\fR \fIversion string\fR" 6 .IX Item "-c version string, --cvs version string" This option carries the \s-1CVS\s0 version info from \s-1CVS\s0 into the program. It will be added automatically by \s-1CVS.\s0 When installing this program into the \fBloginfo\fR file of a \s-1CVS\s0 repository, you will need to add the following option: .Sp \&\fB\-\-cvs\fR %{sVv} .Sp 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 .Sp \&\-\-cvs '\s-1CVSROOT\s0 loginfo,1.1,1.2' .Sp This option is only usful for old-style \s-1CVS\s0 format strings (i.e. prior to \s-1CVS 1.12.6\s0). You can continue using old-style format strings with newer cvs if you write \f(CW%1\fR{sVv} and set \fBUseNewInfoFmtStrings\fR=\fIyes\fR in CVSROOT/config. For more recent versions of \s-1CVS\s0 you should, however, use the new \-\-root and \-\-dir arguments and place %{sVv} at the end of the commandline. .IP "\fB\-\-root\fR \fIcvs repository\fR" 6 .IX Item "--root cvs repository" Specify the \s-1CVS\s0 repository directory. This is normally done by the \&\s-1CVS\s0 server. Prior to version 1.12 the repository was transmitted to the log processor via the \fB\s-1CVSROOT\s0\fR environment variable. The parameter to this option is normally filled in by \s-1CVS\s0 using the \f(CW%r\fR format string: .Sp \&\fB\-\-root\fR \f(CW%r\fR .IP "\fB\-\-dir\fR \fImodule directory\fR" 6 .IX Item "--dir module directory" Specify the directory within the \s-1CVS\s0 repository in which directories or file were added or modified. The parameter to this option is normally filled in by \s-1CVS\s0 using the \f(CW%p\fR format string: .Sp \&\fB\-\-dir\fR \f(CW%p\fR .SH "CONFIGURATION FILE" .IX Header "CONFIGURATION FILE" \&\fBcvs-mailcommit\fR supports an additional configuration file \&\fI/etc/cvs\-mailcommit.pl\fR 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 \fItrue\fR. I.e. place \fB1;\fR at the end of the file. .SH "INSTALLATION" .IX Header "INSTALLATION" The \fB\s-1CVSROOT\s0\fR/\fIloginfo\fR file controls where \fBcvs commit\fR 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 $\fB\s-1CVSROOT\s0\fR. If a match is found, then the remainder of the line is a filter program that should expect log information on its standard input. .PP A \fIloginfo\fR line looks like .PP \-\-