]>
Commit | Line | Data |
---|---|---|
215a7ad1 JH |
1 | git-send-email(1) |
2 | ================= | |
479cec96 RA |
3 | |
4 | NAME | |
5 | ---- | |
215a7ad1 | 6 | git-send-email - Send a collection of patches as emails |
479cec96 RA |
7 | |
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
7791a1d9 | 11 | [verse] |
5df9fcf6 | 12 | 'git send-email' [options] <file|directory|rev-list options>... |
479cec96 RA |
13 | |
14 | ||
479cec96 RA |
15 | DESCRIPTION |
16 | ----------- | |
17 | Takes the patches given on the command line and emails them out. | |
94af7c31 PB |
18 | Patches can be specified as files, directories (which will send all |
19 | files in the directory), or directly as a revision list. In the | |
20 | last case, any format accepted by linkgit:git-format-patch[1] can | |
21 | be passed to git send-email. | |
479cec96 | 22 | |
06ab60c0 | 23 | The header of the email is configurable via command-line options. If not |
479cec96 RA |
24 | specified on the command line, the user will be prompted with a ReadLine |
25 | enabled interface to provide the necessary information. | |
26 | ||
c4ba87a6 TZ |
27 | There are two formats accepted for patch files: |
28 | ||
29 | 1. mbox format files | |
30 | + | |
31 | This is what linkgit:git-format-patch[1] generates. Most headers and MIME | |
32 | formatting are ignored. | |
33 | ||
34 | 2. The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl' | |
35 | script | |
36 | + | |
37 | This format expects the first line of the file to contain the "Cc:" value | |
38 | and the "Subject:" of the message as the second line. | |
39 | ||
917f3e73 | 40 | |
df8baa42 JF |
41 | OPTIONS |
42 | ------- | |
917f3e73 MW |
43 | |
44 | Composing | |
45 | ~~~~~~~~~ | |
479cec96 | 46 | |
432b1282 | 47 | --annotate:: |
402596aa FC |
48 | Review and edit each patch you're about to send. Default is the value |
49 | of 'sendemail.annotate'. See the CONFIGURATION section for | |
da0005b8 | 50 | 'sendemail.multiEdit'. |
432b1282 | 51 | |
4c0fe0af | 52 | --bcc=<address>:: |
3971a973 MW |
53 | Specify a "Bcc:" value for each email. Default is the value of |
54 | 'sendemail.bcc'. | |
5ef1f8d4 SV |
55 | + |
56 | The --bcc option must be repeated for each user you want on the bcc list. | |
79ee555b | 57 | |
4c0fe0af | 58 | --cc=<address>:: |
da140f8b | 59 | Specify a starting "Cc:" value for each email. |
bd7c6e7f | 60 | Default is the value of 'sendemail.cc'. |
5ef1f8d4 SV |
61 | + |
62 | The --cc option must be repeated for each user you want on the cc list. | |
79ee555b | 63 | |
2718435b | 64 | --compose:: |
b4479f07 JN |
65 | Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1]) |
66 | to edit an introductory message for the patch series. | |
beece9da | 67 | + |
01d38612 SB |
68 | When '--compose' is used, git send-email will use the From, Subject, and |
69 | In-Reply-To headers specified in the message. If the body of the message | |
70 | (what you type after the headers and a blank line) only contains blank | |
06ab60c0 | 71 | (or Git: prefixed) lines, the summary won't be sent, but From, Subject, |
01d38612 | 72 | and In-Reply-To headers will be used unless they are removed. |
beece9da | 73 | + |
01d38612 | 74 | Missing From or In-Reply-To headers will be prompted for. |
3a78d078 | 75 | + |
da0005b8 | 76 | See the CONFIGURATION section for 'sendemail.multiEdit'. |
479cec96 | 77 | |
4c0fe0af | 78 | --from=<address>:: |
09caa24f TP |
79 | Specify the sender of the emails. If not specified on the command line, |
80 | the value of the 'sendemail.from' configuration option is used. If | |
06ab60c0 | 81 | neither the command-line option nor 'sendemail.from' are set, then the |
09caa24f TP |
82 | user will be prompted for the value. The default for the prompt will be |
83 | the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not | |
84 | set, as returned by "git var -l". | |
479cec96 | 85 | |
4c0fe0af | 86 | --in-reply-to=<identifier>:: |
db54c8e7 AO |
87 | Make the first mail (or all the mails with `--no-thread`) appear as a |
88 | reply to the given Message-Id, which avoids breaking threads to | |
89 | provide a new patch series. | |
90 | The second and subsequent emails will be sent as replies according to | |
91 | the `--[no]-chain-reply-to` setting. | |
92 | + | |
93 | So for example when `--thread` and `--no-chain-reply-to` are specified, the | |
94 | second and subsequent patches will be replies to the first one like in the | |
95 | illustration below where `[PATCH v2 0/3]` is in reply to `[PATCH 0/2]`: | |
96 | + | |
97 | [PATCH 0/2] Here is what I did... | |
98 | [PATCH 1/2] Clean up and tests | |
99 | [PATCH 2/2] Implementation | |
100 | [PATCH v2 0/3] Here is a reroll | |
101 | [PATCH v2 1/3] Clean up | |
102 | [PATCH v2 2/3] New tests | |
103 | [PATCH v2 3/3] Implementation | |
104 | + | |
105 | Only necessary if --compose is also set. If --compose | |
106 | is not set, this will be prompted for. | |
479cec96 | 107 | |
4c0fe0af | 108 | --subject=<string>:: |
917f3e73 MW |
109 | Specify the initial subject of the email thread. |
110 | Only necessary if --compose is also set. If --compose | |
111 | is not set, this will be prompted for. | |
a6d62cdd | 112 | |
4c0fe0af | 113 | --to=<address>:: |
917f3e73 MW |
114 | Specify the primary recipient of the emails generated. Generally, this |
115 | will be the upstream maintainer of the project involved. Default is the | |
116 | value of the 'sendemail.to' configuration value; if that is unspecified, | |
6e74e075 | 117 | and --to-cmd is not specified, this will be prompted for. |
917f3e73 MW |
118 | + |
119 | The --to option must be repeated for each user you want on the to list. | |
120 | ||
3cae7e5b TR |
121 | --8bit-encoding=<encoding>:: |
122 | When encountering a non-ASCII message or subject that does not | |
123 | declare its encoding, add headers/quoting to indicate it is | |
124 | encoded in <encoding>. Default is the value of the | |
125 | 'sendemail.assume8bitEncoding'; if that is unspecified, this | |
126 | will be prompted for if any non-ASCII files are encountered. | |
127 | + | |
128 | Note that no attempts whatsoever are made to validate the encoding. | |
129 | ||
62e00690 KM |
130 | --compose-encoding=<encoding>:: |
131 | Specify encoding of compose message. Default is the value of the | |
132 | 'sendemail.composeencoding'; if that is unspecified, UTF-8 is assumed. | |
133 | ||
8d814084 PB |
134 | --transfer-encoding=(7bit|8bit|quoted-printable|base64):: |
135 | Specify the transfer encoding to be used to send the message over SMTP. | |
136 | 7bit will fail upon encountering a non-ASCII message. quoted-printable | |
137 | can be useful when the repository contains files that contain carriage | |
138 | returns, but makes the raw patch email file (as saved from a MUA) much | |
139 | harder to inspect manually. base64 is even more fool proof, but also | |
140 | even more opaque. Default is the value of the 'sendemail.transferEncoding' | |
141 | configuration value; if that is unspecified, git will use 8bit and not | |
142 | add a Content-Transfer-Encoding header. | |
143 | ||
ac1596a6 LH |
144 | --xmailer:: |
145 | --no-xmailer:: | |
146 | Add (or prevent adding) the "X-Mailer:" header. By default, | |
147 | the header is added, but it can be turned off by setting the | |
148 | `sendemail.xmailer` configuration variable to `false`. | |
917f3e73 MW |
149 | |
150 | Sending | |
151 | ~~~~~~~ | |
152 | ||
4c0fe0af | 153 | --envelope-sender=<address>:: |
917f3e73 MW |
154 | Specify the envelope sender used to send the emails. |
155 | This is useful if your default address is not the address that is | |
c89e3241 FC |
156 | subscribed to a list. In order to use the 'From' address, set the |
157 | value to "auto". If you use the sendmail binary, you must have | |
158 | suitable privileges for the -f parameter. Default is the value of the | |
da0005b8 | 159 | 'sendemail.envelopeSender' configuration variable; if that is |
917f3e73 | 160 | unspecified, choosing the envelope sender is left to your MTA. |
73811e66 | 161 | |
4c0fe0af | 162 | --smtp-encryption=<encryption>:: |
73811e66 MW |
163 | Specify the encryption to use, either 'ssl' or 'tls'. Any other |
164 | value reverts to plain SMTP. Default is the value of | |
da0005b8 | 165 | 'sendemail.smtpEncryption'. |
73811e66 | 166 | |
79ca070c BG |
167 | --smtp-domain=<FQDN>:: |
168 | Specifies the Fully Qualified Domain Name (FQDN) used in the | |
169 | HELO/EHLO command to the SMTP server. Some servers require the | |
170 | FQDN to match your IP address. If not set, git send-email attempts | |
69cf7bfd | 171 | to determine your FQDN automatically. Default is the value of |
da0005b8 | 172 | 'sendemail.smtpDomain'. |
79ca070c | 173 | |
4c0fe0af | 174 | --smtp-pass[=<password>]:: |
73811e66 MW |
175 | Password for SMTP-AUTH. The argument is optional: If no |
176 | argument is specified, then the empty string is used as | |
da0005b8 | 177 | the password. Default is the value of 'sendemail.smtpPass', |
3971a973 | 178 | however '--smtp-pass' always overrides this value. |
73811e66 MW |
179 | + |
180 | Furthermore, passwords need not be specified in configuration files | |
181 | or on the command line. If a username has been specified (with | |
da0005b8 NTND |
182 | '--smtp-user' or a 'sendemail.smtpUser'), but no password has been |
183 | specified (with '--smtp-pass' or 'sendemail.smtpPass'), then | |
4d31a44a | 184 | a password is obtained using 'git-credential'. |
34cc60ce | 185 | |
4c0fe0af | 186 | --smtp-server=<host>:: |
928a5590 JA |
187 | If set, specifies the outgoing SMTP server to use (e.g. |
188 | `smtp.example.com` or a raw IP address). Alternatively it can | |
189 | specify a full pathname of a sendmail-like program instead; | |
6dcfa306 | 190 | the program must support the `-i` option. Default value can |
da0005b8 | 191 | be specified by the 'sendemail.smtpServer' configuration |
6dcfa306 SV |
192 | option; the built-in default is `/usr/sbin/sendmail` or |
193 | `/usr/lib/sendmail` if such program is available, or | |
194 | `localhost` otherwise. | |
a6d62cdd | 195 | |
4c0fe0af | 196 | --smtp-server-port=<port>:: |
44b2476a | 197 | Specifies a port different from the default port (SMTP |
2da846e7 WL |
198 | servers typically listen to smtp port 25, but may also listen to |
199 | submission port 587, or the common SSL smtp port 465); | |
200 | symbolic port names (e.g. "submission" instead of 587) | |
dd602bf8 | 201 | are also accepted. The port can also be set with the |
da0005b8 | 202 | 'sendemail.smtpServerPort' configuration variable. |
44b2476a | 203 | |
052fbea2 PO |
204 | --smtp-server-option=<option>:: |
205 | If set, specifies the outgoing SMTP server option to use. | |
da0005b8 | 206 | Default value can be specified by the 'sendemail.smtpServerOption' |
052fbea2 PO |
207 | configuration option. |
208 | + | |
209 | The --smtp-server-option option must be repeated for each option you want | |
210 | to pass to the server. Likewise, different lines in the configuration files | |
211 | must be used for each option. | |
212 | ||
73811e66 | 213 | --smtp-ssl:: |
3971a973 | 214 | Legacy alias for '--smtp-encryption ssl'. |
73811e66 | 215 | |
35035bbf | 216 | --smtp-ssl-cert-path:: |
bcfe6f32 AW |
217 | Path to a store of trusted CA certificates for SMTP SSL/TLS |
218 | certificate validation (either a directory that has been processed | |
219 | by 'c_rehash', or a single file containing one or more PEM format | |
220 | certificates concatenated together: see verify(1) -CAfile and | |
221 | -CApath for more information on these). Set it to an empty string | |
222 | to disable certificate verification. Defaults to the value of the | |
223 | 'sendemail.smtpsslcertpath' configuration variable, if set, or the | |
224 | backing SSL library's compiled-in default otherwise (which should | |
225 | be the best choice on most platforms). | |
35035bbf | 226 | |
4c0fe0af | 227 | --smtp-user=<user>:: |
da0005b8 NTND |
228 | Username for SMTP-AUTH. Default is the value of 'sendemail.smtpUser'; |
229 | if a username is not specified (with '--smtp-user' or 'sendemail.smtpUser'), | |
3971a973 | 230 | then authentication is not attempted. |
2363d746 | 231 | |
3ddf9228 ZJS |
232 | --smtp-debug=0|1:: |
233 | Enable (1) or disable (0) debug output. If enabled, SMTP | |
234 | commands and replies will be printed. Useful to debug TLS | |
235 | connection and authentication problems. | |
917f3e73 MW |
236 | |
237 | Automating | |
238 | ~~~~~~~~~~ | |
239 | ||
6e74e075 JP |
240 | --to-cmd=<command>:: |
241 | Specify a command to execute once per patch file which | |
242 | should generate patch file specific "To:" entries. | |
243 | Output of this command must be single email address per line. | |
244 | Default is the value of 'sendemail.tocmd' configuration value. | |
245 | ||
4c0fe0af | 246 | --cc-cmd=<command>:: |
917f3e73 MW |
247 | Specify a command to execute once per patch file which |
248 | should generate patch file specific "Cc:" entries. | |
249 | Output of this command must be single email address per line. | |
da0005b8 | 250 | Default is the value of 'sendemail.ccCmd' configuration value. |
917f3e73 | 251 | |
0fd41f2d | 252 | --[no-]chain-reply-to:: |
917f3e73 MW |
253 | If this is set, each email will be sent as a reply to the previous |
254 | email sent. If disabled with "--no-chain-reply-to", all emails after | |
255 | the first will be sent as replies to the first email sent. When using | |
256 | this, it is recommended that the first file given be an overview of the | |
da0005b8 | 257 | entire patch series. Disabled by default, but the 'sendemail.chainReplyTo' |
41fe87fa | 258 | configuration variable can be used to enable it. |
917f3e73 | 259 | |
4c0fe0af | 260 | --identity=<identity>:: |
917f3e73 MW |
261 | A configuration identity. When given, causes values in the |
262 | 'sendemail.<identity>' subsection to take precedence over | |
263 | values in the 'sendemail' section. The default identity is | |
264 | the value of 'sendemail.identity'. | |
265 | ||
266 | --[no-]signed-off-by-cc:: | |
267 | If this is set, add emails found in Signed-off-by: or Cc: lines to the | |
ddc3d4fe | 268 | cc list. Default is the value of 'sendemail.signedoffbycc' configuration |
917f3e73 | 269 | value; if that is unspecified, default to --signed-off-by-cc. |
2718435b | 270 | |
f515c904 MT |
271 | --[no-]cc-cover:: |
272 | If this is set, emails found in Cc: headers in the first patch of | |
273 | the series (typically the cover letter) are added to the cc list | |
274 | for each email set. Default is the value of 'sendemail.cccover' | |
275 | configuration value; if that is unspecified, default to --no-cc-cover. | |
276 | ||
277 | --[no-]to-cover:: | |
278 | If this is set, emails found in To: headers in the first patch of | |
279 | the series (typically the cover letter) are added to the to list | |
280 | for each email set. Default is the value of 'sendemail.tocover' | |
281 | configuration value; if that is unspecified, default to --no-to-cover. | |
282 | ||
4c0fe0af | 283 | --suppress-cc=<category>:: |
65648283 | 284 | Specify an additional category of recipients to suppress the |
3531e270 JS |
285 | auto-cc of: |
286 | + | |
287 | -- | |
288 | - 'author' will avoid including the patch author | |
289 | - 'self' will avoid including the sender | |
290 | - 'cc' will avoid including anyone mentioned in Cc lines in the patch header | |
291 | except for self (use 'self' for that). | |
cb8a9bd5 | 292 | - 'bodycc' will avoid including anyone mentioned in Cc lines in the |
3531e270 JS |
293 | patch body (commit message) except for self (use 'self' for that). |
294 | - 'sob' will avoid including anyone mentioned in Signed-off-by lines except | |
295 | for self (use 'self' for that). | |
296 | - 'cccmd' will avoid running the --cc-cmd. | |
cb8a9bd5 | 297 | - 'body' is equivalent to 'sob' + 'bodycc' |
3531e270 JS |
298 | - 'all' will suppress all auto cc values. |
299 | -- | |
300 | + | |
301 | Default is the value of 'sendemail.suppresscc' configuration value; if | |
302 | that is unspecified, default to 'self' if --suppress-from is | |
303 | specified, as well as 'body' if --no-signed-off-cc is specified. | |
65648283 | 304 | |
73811e66 MW |
305 | --[no-]suppress-from:: |
306 | If this is set, do not add the From: address to the cc: list. | |
da0005b8 | 307 | Default is the value of 'sendemail.suppressFrom' configuration |
73811e66 MW |
308 | value; if that is unspecified, default to --no-suppress-from. |
309 | ||
7ecbad91 | 310 | --[no-]thread:: |
f693b7e9 YD |
311 | If this is set, the In-Reply-To and References headers will be |
312 | added to each email sent. Whether each mail refers to the | |
313 | previous email (`deep` threading per 'git format-patch' | |
314 | wording) or to the first email (`shallow` threading) is | |
315 | governed by "--[no-]chain-reply-to". | |
316 | + | |
317 | If disabled with "--no-thread", those headers will not be added | |
318 | (unless specified with --in-reply-to). Default is the value of the | |
319 | 'sendemail.thread' configuration value; if that is unspecified, | |
320 | default to --thread. | |
321 | + | |
322 | It is up to the user to ensure that no In-Reply-To header already | |
323 | exists when 'git send-email' is asked to add it (especially note that | |
324 | 'git format-patch' can be configured to do the threading itself). | |
325 | Failure to do so may not produce the expected result in the | |
326 | recipient's MUA. | |
e46f7a0e | 327 | |
917f3e73 MW |
328 | |
329 | Administering | |
330 | ~~~~~~~~~~~~~ | |
331 | ||
4c0fe0af | 332 | --confirm=<mode>:: |
c1f2aa45 JS |
333 | Confirm just before sending: |
334 | + | |
335 | -- | |
336 | - 'always' will always confirm before sending | |
337 | - 'never' will never confirm before sending | |
338 | - 'cc' will confirm before sending when send-email has automatically | |
339 | added addresses from the patch to the Cc list | |
340 | - 'compose' will confirm before sending the first message when using --compose. | |
341 | - 'auto' is equivalent to 'cc' + 'compose' | |
342 | -- | |
343 | + | |
344 | Default is the value of 'sendemail.confirm' configuration value; if that | |
345 | is unspecified, default to 'auto' unless any of the suppress options | |
346 | have been specified, in which case default to 'compose'. | |
347 | ||
917f3e73 MW |
348 | --dry-run:: |
349 | Do everything except actually send the emails. | |
350 | ||
432b1282 MW |
351 | --[no-]format-patch:: |
352 | When an argument may be understood either as a reference or as a file name, | |
353 | choose to understand it as a format-patch argument ('--format-patch') | |
354 | or as a file name ('--no-format-patch'). By default, when such a conflict | |
355 | occurs, git send-email will fail. | |
356 | ||
917f3e73 MW |
357 | --quiet:: |
358 | Make git-send-email less verbose. One line per email should be | |
359 | all that is output. | |
03044a98 | 360 | |
dbf5e1e9 MW |
361 | --[no-]validate:: |
362 | Perform sanity checks on patches. | |
7ecbad91 MW |
363 | Currently, validation means the following: |
364 | + | |
365 | -- | |
366 | * Warn of patches that contain lines longer than 998 characters; this | |
367 | is due to SMTP limits as described by http://www.ietf.org/rfc/rfc2821.txt. | |
368 | -- | |
dbf5e1e9 | 369 | + |
3971a973 MW |
370 | Default is the value of 'sendemail.validate'; if this is not set, |
371 | default to '--validate'. | |
7ecbad91 | 372 | |
1a3e302a AS |
373 | --force:: |
374 | Send emails even if safety checks would prevent it. | |
375 | ||
a6d62cdd | 376 | |
fc095242 AK |
377 | CONFIGURATION |
378 | ------------- | |
917f3e73 | 379 | |
da0005b8 | 380 | sendemail.aliasesFile:: |
fc095242 | 381 | To avoid typing long email addresses, point this to one or more |
da0005b8 | 382 | email aliases files. You must also supply 'sendemail.aliasFileType'. |
fc095242 | 383 | |
da0005b8 NTND |
384 | sendemail.aliasFileType:: |
385 | Format of the file(s) specified in sendemail.aliasesFile. Must be | |
3169e06d AH |
386 | one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus', or 'sendmail'. |
387 | + | |
388 | What an alias file in each format looks like can be found in | |
389 | the documentation of the email program of the same name. The | |
390 | differences and limitations from the standard formats are | |
391 | described below: | |
392 | + | |
393 | -- | |
394 | sendmail;; | |
395 | * Quoted aliases and quoted addresses are not supported: lines that | |
396 | contain a `"` symbol are ignored. | |
397 | * Line continuations are not supported: lines that start with | |
398 | whitespace characters, or end with a `\` symbol are ignored. | |
399 | * Warnings are printed on the standard error output for any | |
400 | explicitly unsupported constructs, and any other lines that are not | |
401 | recognized by the parser. | |
402 | -- | |
fc095242 | 403 | |
da0005b8 | 404 | sendemail.multiEdit:: |
8fd5bb7f PH |
405 | If true (default), a single editor instance will be spawned to edit |
406 | files you have to edit (patches when '--annotate' is used, and the | |
407 | summary when '--compose' is used). If false, files will be edited one | |
408 | after the other, spawning a new editor each time. | |
409 | ||
c1f2aa45 JS |
410 | sendemail.confirm:: |
411 | Sets the default for whether to confirm before sending. Must be | |
412 | one of 'always', 'never', 'cc', 'compose', or 'auto'. See '--confirm' | |
413 | in the previous section for the meaning of these values. | |
414 | ||
36c10e6d JN |
415 | EXAMPLE |
416 | ------- | |
2b873e06 | 417 | Use gmail as the smtp server |
36c10e6d JN |
418 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
419 | To use 'git send-email' to send your patches through the GMail SMTP server, | |
420 | edit ~/.gitconfig to specify your account settings: | |
2b873e06 PY |
421 | |
422 | [sendemail] | |
da0005b8 NTND |
423 | smtpEncryption = tls |
424 | smtpServer = smtp.gmail.com | |
425 | smtpUser = yourname@gmail.com | |
426 | smtpServerPort = 587 | |
2b873e06 | 427 | |
36c10e6d JN |
428 | Once your commits are ready to be sent to the mailing list, run the |
429 | following commands: | |
430 | ||
431 | $ git format-patch --cover-letter -M origin/master -o outgoing/ | |
432 | $ edit outgoing/0000-* | |
433 | $ git send-email outgoing/* | |
434 | ||
2b873e06 PY |
435 | Note: the following perl modules are required |
436 | Net::SMTP::SSL, MIME::Base64 and Authen::SASL | |
437 | ||
36c10e6d JN |
438 | SEE ALSO |
439 | -------- | |
440 | linkgit:git-format-patch[1], linkgit:git-imap-send[1], mbox(5) | |
441 | ||
479cec96 RA |
442 | GIT |
443 | --- | |
9e1f0a85 | 444 | Part of the linkgit:git[1] suite |