File: cvs-mailcommit.1

package info (click to toggle)
cvs-mailcommit 1.19-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 156 kB
  • sloc: perl: 369; makefile: 2
file content (331 lines) | stat: -rw-r--r-- 12,235 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
.\" 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
<directory>    <command> \-\-<option> \-\-<option>
.SH "NOTES"
.IX Header "NOTES"
The \fB\-\-cvs\fR option is only valid for old-style \s-1CVS\s0 format strings
prior to version 1.12.6 of \s-1CVS\s0 with \fI%{sVv}\fR or for new-style \s-1CVS\s0
format strings using the compatibility hack with \fI\f(CI%1\fI{sVv}\fR.
.PP
For new-style \s-1CVS\s0 format strings for \s-1CVS\s0 version 1.12.6 or higher
\&\fB\-\-cvs\fR must not be used anymore, but instead \fB\-\-root\fR and \fB\-\-dir\fR
are required.  The version information \fI%{sVv}\fR must be added at the
end of the command line.
.SH "EXAMPLE"
.IX Header "EXAMPLE"
Assume you want to monitor changes in the \fB\s-1CVSROOT\s0\fR module, then you
may want to use the following line.
.PP
.Vb 4
\&    CVSROOT     cvs\-mailcommit \e
\&      \-\-mailto master@host.org \e
\&      \-\-from cvs@cvshost.com \e
\&      \-\-cvs %{sVv} \-\-diff \-\-full
.Ve
.PP
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.
.PP
.Vb 5
\&    webwml      cvs\-mailcommit \e
\&      \-\-mailto master@host.org \e
\&      \-\-from cvs@cvshost.com \e
\&      \-\-approved cvsmaster@cvshost.com \e
\&      \-\-cvs %{sVv} \-\-diff \-\-full
.Ve
.PP
The above configuration lines are valid only for old-style format
strings.  With a more recent version of \s-1CVS\s0 (1.12.6 or newer) you'll
have to replace \fI%{sVv}\fR with \fI\f(CI%1\fI{sVv}\fR and set
\&\fBUseNewInfoFmtStrings\fR to \fIyes\fR in \fICVSROOT/config\fR.
.PP
For new-style \s-1CVS\s0 format strings other parameters need to be used
since \s-1CVS\s0 changed the syntax and semantics.  You must not use the
\&\fB\-\-cvs\fR option anymore but need to use \fB\-\-root\fR and \fB\-\-dir\fR and
place the version list at the end.  The last example converted for
new-style format strings looks like the following:
.PP
.Vb 5
\&    webwml      cvs\-mailcommit \e
\&      \-\-mailto master@host.org \e
\&      \-\-from cvs@cvshost.com \e
\&      \-\-approved cvsmaster@cvshost.com \e
\&      \-\-diff \-\-full \-\-root %r \-\-dir %p %{sVv}
.Ve
.PP
To improve readability, the above lines were broken up into several
lines using normal continuation lines.  This is not supported by \s-1CVS.\s0
You will have to write it in one single line.
.SH "WARNING"
.IX Header "WARNING"
\&\s-1CVS\s0 does not support continuation lines (multiple lines per command)
in the \fB\s-1CVSROOT\s0\fR/\fIloginfo\fR file.  You'll have to write each filter
in a single line of its own.
.SH "SOURCE"
.IX Header "SOURCE"
http://www.infodrom.org/Infodrom/tools/cvs\-mailcommit.html