aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/git-send-email.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/git-send-email.txt')
-rw-r--r--Documentation/git-send-email.txt543
1 files changed, 0 insertions, 543 deletions
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
deleted file mode 100644
index bc3ef45acb..0000000000
--- a/Documentation/git-send-email.txt
+++ /dev/null
@@ -1,543 +0,0 @@
-git-send-email(1)
-=================
-
-NAME
-----
-git-send-email - Send a collection of patches as emails
-
-
-SYNOPSIS
---------
-[verse]
-'git send-email' [<options>] (<file>|<directory>)...
-'git send-email' [<options>] <format-patch-options>
-'git send-email' --dump-aliases
-'git send-email' --translate-aliases
-
-
-DESCRIPTION
------------
-Takes the patches given on the command line and emails them out.
-Patches can be specified as files, directories (which will send all
-files in the directory), or directly as a revision list. In the
-last case, any format accepted by linkgit:git-format-patch[1] can
-be passed to git send-email, as well as options understood by
-linkgit:git-format-patch[1].
-
-The header of the email is configurable via command-line options. If not
-specified on the command line, the user will be prompted with a ReadLine
-enabled interface to provide the necessary information.
-
-There are two formats accepted for patch files:
-
-1. mbox format files
-+
-This is what linkgit:git-format-patch[1] generates. Most headers and MIME
-formatting are ignored.
-
-2. The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl'
- script
-+
-This format expects the first line of the file to contain the "Cc:" value
-and the "Subject:" of the message as the second line.
-
-
-OPTIONS
--------
-
-Composing
-~~~~~~~~~
-
---annotate::
- Review and edit each patch you're about to send. Default is the value
- of `sendemail.annotate`. See the CONFIGURATION section for
- `sendemail.multiEdit`.
-
---bcc=<address>,...::
- Specify a "Bcc:" value for each email. Default is the value of
- `sendemail.bcc`.
-+
-This option may be specified multiple times.
-
---cc=<address>,...::
- Specify a starting "Cc:" value for each email.
- Default is the value of `sendemail.cc`.
-+
-This option may be specified multiple times.
-
---compose::
- Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1])
- to edit an introductory message for the patch series.
-+
-When `--compose` is used, git send-email will use the From, To, Cc, Bcc,
-Subject, Reply-To, and In-Reply-To headers specified in the message. If
-the body of the message (what you type after the headers and a blank
-line) only contains blank (or Git: prefixed) lines, the summary won't be
-sent, but the headers mentioned above will be used unless they are
-removed.
-+
-Missing From or In-Reply-To headers will be prompted for.
-+
-See the CONFIGURATION section for `sendemail.multiEdit`.
-
---from=<address>::
- Specify the sender of the emails. If not specified on the command line,
- the value of the `sendemail.from` configuration option is used. If
- neither the command-line option nor `sendemail.from` are set, then the
- user will be prompted for the value. The default for the prompt will be
- the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not
- set, as returned by "git var -l".
-
---reply-to=<address>::
- Specify the address where replies from recipients should go to.
- Use this if replies to messages should go to another address than what
- is specified with the --from parameter.
-
---in-reply-to=<identifier>::
- Make the first mail (or all the mails with `--no-thread`) appear as a
- reply to the given Message-ID, which avoids breaking threads to
- provide a new patch series.
- The second and subsequent emails will be sent as replies according to
- the `--[no-]chain-reply-to` setting.
-+
-So for example when `--thread` and `--no-chain-reply-to` are specified, the
-second and subsequent patches will be replies to the first one like in the
-illustration below where `[PATCH v2 0/3]` is in reply to `[PATCH 0/2]`:
-+
- [PATCH 0/2] Here is what I did...
- [PATCH 1/2] Clean up and tests
- [PATCH 2/2] Implementation
- [PATCH v2 0/3] Here is a reroll
- [PATCH v2 1/3] Clean up
- [PATCH v2 2/3] New tests
- [PATCH v2 3/3] Implementation
-+
-Only necessary if --compose is also set. If --compose
-is not set, this will be prompted for.
-
---subject=<string>::
- Specify the initial subject of the email thread.
- Only necessary if --compose is also set. If --compose
- is not set, this will be prompted for.
-
---to=<address>,...::
- Specify the primary recipient of the emails generated. Generally, this
- will be the upstream maintainer of the project involved. Default is the
- value of the `sendemail.to` configuration value; if that is unspecified,
- and --to-cmd is not specified, this will be prompted for.
-+
-This option may be specified multiple times.
-
---8bit-encoding=<encoding>::
- When encountering a non-ASCII message or subject that does not
- declare its encoding, add headers/quoting to indicate it is
- encoded in <encoding>. Default is the value of the
- 'sendemail.assume8bitEncoding'; if that is unspecified, this
- will be prompted for if any non-ASCII files are encountered.
-+
-Note that no attempts whatsoever are made to validate the encoding.
-
---compose-encoding=<encoding>::
- Specify encoding of compose message. Default is the value of the
- 'sendemail.composeEncoding'; if that is unspecified, UTF-8 is assumed.
-
---transfer-encoding=(7bit|8bit|quoted-printable|base64|auto)::
- Specify the transfer encoding to be used to send the message over SMTP.
- 7bit will fail upon encountering a non-ASCII message. quoted-printable
- can be useful when the repository contains files that contain carriage
- returns, but makes the raw patch email file (as saved from a MUA) much
- harder to inspect manually. base64 is even more fool proof, but also
- even more opaque. auto will use 8bit when possible, and quoted-printable
- otherwise.
-+
-Default is the value of the `sendemail.transferEncoding` configuration
-value; if that is unspecified, default to `auto`.
-
---xmailer::
---no-xmailer::
- Add (or prevent adding) the "X-Mailer:" header. By default,
- the header is added, but it can be turned off by setting the
- `sendemail.xmailer` configuration variable to `false`.
-
-Sending
-~~~~~~~
-
---envelope-sender=<address>::
- Specify the envelope sender used to send the emails.
- This is useful if your default address is not the address that is
- subscribed to a list. In order to use the 'From' address, set the
- value to "auto". If you use the sendmail binary, you must have
- suitable privileges for the -f parameter. Default is the value of the
- `sendemail.envelopeSender` configuration variable; if that is
- unspecified, choosing the envelope sender is left to your MTA.
-
---sendmail-cmd=<command>::
- Specify a command to run to send the email. The command should
- be sendmail-like; specifically, it must support the `-i` option.
- The command will be executed in the shell if necessary. Default
- is the value of `sendemail.sendmailCmd`. If unspecified, and if
- --smtp-server is also unspecified, git-send-email will search
- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH.
-
---smtp-encryption=<encryption>::
- Specify in what way encrypting begins for the SMTP connection.
- Valid values are 'ssl' and 'tls'. Any other value reverts to plain
- (unencrypted) SMTP, which defaults to port 25.
- Despite the names, both values will use the same newer version of TLS,
- but for historic reasons have these names. 'ssl' refers to "implicit"
- encryption (sometimes called SMTPS), that uses port 465 by default.
- 'tls' refers to "explicit" encryption (often known as STARTTLS),
- that uses port 25 by default. Other ports might be used by the SMTP
- server, which are not the default. Commonly found alternative port for
- 'tls' and unencrypted is 587. You need to check your provider's
- documentation or your server configuration to make sure
- for your own case. Default is the value of `sendemail.smtpEncryption`.
-
---smtp-domain=<FQDN>::
- Specifies the Fully Qualified Domain Name (FQDN) used in the
- HELO/EHLO command to the SMTP server. Some servers require the
- FQDN to match your IP address. If not set, git send-email attempts
- to determine your FQDN automatically. Default is the value of
- `sendemail.smtpDomain`.
-
---smtp-auth=<mechanisms>::
- Whitespace-separated list of allowed SMTP-AUTH mechanisms. This setting
- forces using only the listed mechanisms. Example:
-+
-------
-$ git send-email --smtp-auth="PLAIN LOGIN GSSAPI" ...
-------
-+
-If at least one of the specified mechanisms matches the ones advertised by the
-SMTP server and if it is supported by the utilized SASL library, the mechanism
-is used for authentication. If neither 'sendemail.smtpAuth' nor `--smtp-auth`
-is specified, all mechanisms supported by the SASL library can be used. The
-special value 'none' maybe specified to completely disable authentication
-independently of `--smtp-user`
-
---smtp-pass[=<password>]::
- Password for SMTP-AUTH. The argument is optional: If no
- argument is specified, then the empty string is used as
- the password. Default is the value of `sendemail.smtpPass`,
- however `--smtp-pass` always overrides this value.
-+
-Furthermore, passwords need not be specified in configuration files
-or on the command line. If a username has been specified (with
-`--smtp-user` or a `sendemail.smtpUser`), but no password has been
-specified (with `--smtp-pass` or `sendemail.smtpPass`), then
-a password is obtained using 'git-credential'.
-
---no-smtp-auth::
- Disable SMTP authentication. Short hand for `--smtp-auth=none`
-
---smtp-server=<host>::
- If set, specifies the outgoing SMTP server to use (e.g.
- `smtp.example.com` or a raw IP address). If unspecified, and if
- `--sendmail-cmd` is also unspecified, the default is to search
- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH if such a
- program is available, falling back to `localhost` otherwise.
-+
-For backward compatibility, this option can also specify a full pathname
-of a sendmail-like program instead; the program must support the `-i`
-option. This method does not support passing arguments or using plain
-command names. For those use cases, consider using `--sendmail-cmd`
-instead.
-
---smtp-server-port=<port>::
- Specifies a port different from the default port (SMTP
- servers typically listen to smtp port 25, but may also listen to
- submission port 587, or the common SSL smtp port 465);
- symbolic port names (e.g. "submission" instead of 587)
- are also accepted. The port can also be set with the
- `sendemail.smtpServerPort` configuration variable.
-
---smtp-server-option=<option>::
- If set, specifies the outgoing SMTP server option to use.
- Default value can be specified by the `sendemail.smtpServerOption`
- configuration option.
-+
-The --smtp-server-option option must be repeated for each option you want
-to pass to the server. Likewise, different lines in the configuration files
-must be used for each option.
-
---smtp-ssl::
- Legacy alias for '--smtp-encryption ssl'.
-
---smtp-ssl-cert-path::
- Path to a store of trusted CA certificates for SMTP SSL/TLS
- certificate validation (either a directory that has been processed
- by 'c_rehash', or a single file containing one or more PEM format
- certificates concatenated together: see verify(1) -CAfile and
- -CApath for more information on these). Set it to an empty string
- to disable certificate verification. Defaults to the value of the
- `sendemail.smtpSSLCertPath` configuration variable, if set, or the
- backing SSL library's compiled-in default otherwise (which should
- be the best choice on most platforms).
-
---smtp-user=<user>::
- Username for SMTP-AUTH. Default is the value of `sendemail.smtpUser`;
- if a username is not specified (with `--smtp-user` or `sendemail.smtpUser`),
- then authentication is not attempted.
-
---smtp-debug=(0|1)::
- Enable (1) or disable (0) debug output. If enabled, SMTP
- commands and replies will be printed. Useful to debug TLS
- connection and authentication problems.
-
---batch-size=<num>::
- Some email servers (e.g. smtp.163.com) limit the number emails to be
- sent per session (connection) and this will lead to a failure when
- sending many messages. With this option, send-email will disconnect after
- sending $<num> messages and wait for a few seconds (see --relogin-delay)
- and reconnect, to work around such a limit. You may want to
- use some form of credential helper to avoid having to retype
- your password every time this happens. Defaults to the
- `sendemail.smtpBatchSize` configuration variable.
-
---relogin-delay=<int>::
- Waiting $<int> seconds before reconnecting to SMTP server. Used together
- with --batch-size option. Defaults to the `sendemail.smtpReloginDelay`
- configuration variable.
-
-Automating
-~~~~~~~~~~
-
---no-to::
---no-cc::
---no-bcc::
- Clears any list of "To:", "Cc:", "Bcc:" addresses previously
- set via config.
-
---no-identity::
- Clears the previously read value of `sendemail.identity` set
- via config, if any.
-
---to-cmd=<command>::
- Specify a command to execute once per patch file which
- should generate patch file specific "To:" entries.
- Output of this command must be single email address per line.
- Default is the value of 'sendemail.toCmd' configuration value.
-
---cc-cmd=<command>::
- Specify a command to execute once per patch file which
- should generate patch file specific "Cc:" entries.
- Output of this command must be single email address per line.
- Default is the value of `sendemail.ccCmd` configuration value.
-
---header-cmd=<command>::
- Specify a command that is executed once per outgoing message
- and output RFC 2822 style header lines to be inserted into
- them. When the `sendemail.headerCmd` configuration variable is
- set, its value is always used. When --header-cmd is provided
- at the command line, its value takes precedence over the
- `sendemail.headerCmd` configuration variable.
-
---no-header-cmd::
- Disable any header command in use.
-
---[no-]chain-reply-to::
- If this is set, each email will be sent as a reply to the previous
- email sent. If disabled with "--no-chain-reply-to", all emails after
- the first will be sent as replies to the first email sent. When using
- this, it is recommended that the first file given be an overview of the
- entire patch series. Disabled by default, but the `sendemail.chainReplyTo`
- configuration variable can be used to enable it.
-
---identity=<identity>::
- A configuration identity. When given, causes values in the
- 'sendemail.<identity>' subsection to take precedence over
- values in the 'sendemail' section. The default identity is
- the value of `sendemail.identity`.
-
---[no-]signed-off-by-cc::
- If this is set, add emails found in the `Signed-off-by` trailer or Cc: lines to the
- cc list. Default is the value of `sendemail.signedOffByCc` configuration
- value; if that is unspecified, default to --signed-off-by-cc.
-
---[no-]cc-cover::
- If this is set, emails found in Cc: headers in the first patch of
- the series (typically the cover letter) are added to the cc list
- for each email set. Default is the value of 'sendemail.ccCover'
- configuration value; if that is unspecified, default to --no-cc-cover.
-
---[no-]to-cover::
- If this is set, emails found in To: headers in the first patch of
- the series (typically the cover letter) are added to the to list
- for each email set. Default is the value of 'sendemail.toCover'
- configuration value; if that is unspecified, default to --no-to-cover.
-
---suppress-cc=<category>::
- Specify an additional category of recipients to suppress the
- auto-cc of:
-+
---
-- 'author' will avoid including the patch author.
-- 'self' will avoid including the sender.
-- 'cc' will avoid including anyone mentioned in Cc lines in the patch header
- except for self (use 'self' for that).
-- 'bodycc' will avoid including anyone mentioned in Cc lines in the
- patch body (commit message) except for self (use 'self' for that).
-- 'sob' will avoid including anyone mentioned in the Signed-off-by trailers except
- for self (use 'self' for that).
-- 'misc-by' will avoid including anyone mentioned in Acked-by,
- Reviewed-by, Tested-by and other "-by" lines in the patch body,
- except Signed-off-by (use 'sob' for that).
-- 'cccmd' will avoid running the --cc-cmd.
-- 'body' is equivalent to 'sob' + 'bodycc' + 'misc-by'.
-- 'all' will suppress all auto cc values.
---
-+
-Default is the value of `sendemail.suppressCc` configuration value; if
-that is unspecified, default to 'self' if --suppress-from is
-specified, as well as 'body' if --no-signed-off-cc is specified.
-
---[no-]suppress-from::
- If this is set, do not add the From: address to the cc: list.
- Default is the value of `sendemail.suppressFrom` configuration
- value; if that is unspecified, default to --no-suppress-from.
-
---[no-]thread::
- If this is set, the In-Reply-To and References headers will be
- added to each email sent. Whether each mail refers to the
- previous email (`deep` threading per 'git format-patch'
- wording) or to the first email (`shallow` threading) is
- governed by "--[no-]chain-reply-to".
-+
-If disabled with "--no-thread", those headers will not be added
-(unless specified with --in-reply-to). Default is the value of the
-`sendemail.thread` configuration value; if that is unspecified,
-default to --thread.
-+
-It is up to the user to ensure that no In-Reply-To header already
-exists when 'git send-email' is asked to add it (especially note that
-'git format-patch' can be configured to do the threading itself).
-Failure to do so may not produce the expected result in the
-recipient's MUA.
-
---[no-]mailmap::
- Use the mailmap file (see linkgit:gitmailmap[5]) to map all
- addresses to their canonical real name and email address. Additional
- mailmap data specific to git-send-email may be provided using the
- `sendemail.mailmap.file` or `sendemail.mailmap.blob` configuration
- values. Defaults to `sendemail.mailmap`.
-
-Administering
-~~~~~~~~~~~~~
-
---confirm=<mode>::
- Confirm just before sending:
-+
---
-- 'always' will always confirm before sending
-- 'never' will never confirm before sending
-- 'cc' will confirm before sending when send-email has automatically
- added addresses from the patch to the Cc list
-- 'compose' will confirm before sending the first message when using --compose.
-- 'auto' is equivalent to 'cc' + 'compose'
---
-+
-Default is the value of `sendemail.confirm` configuration value; if that
-is unspecified, default to 'auto' unless any of the suppress options
-have been specified, in which case default to 'compose'.
-
---dry-run::
- Do everything except actually send the emails.
-
---[no-]format-patch::
- When an argument may be understood either as a reference or as a file name,
- choose to understand it as a format-patch argument (`--format-patch`)
- or as a file name (`--no-format-patch`). By default, when such a conflict
- occurs, git send-email will fail.
-
---quiet::
- Make git-send-email less verbose. One line per email should be
- all that is output.
-
---[no-]validate::
- Perform sanity checks on patches.
- Currently, validation means the following:
-+
---
- * Invoke the sendemail-validate hook if present (see linkgit:githooks[5]).
- * Warn of patches that contain lines longer than
- 998 characters unless a suitable transfer encoding
- ('auto', 'base64', or 'quoted-printable') is used;
- this is due to SMTP limits as described by
- https://www.ietf.org/rfc/rfc5322.txt.
---
-+
-Default is the value of `sendemail.validate`; if this is not set,
-default to `--validate`.
-
---force::
- Send emails even if safety checks would prevent it.
-
-
-Information
-~~~~~~~~~~~
-
---dump-aliases::
- Instead of the normal operation, dump the shorthand alias names from
- the configured alias file(s), one per line in alphabetical order. Note
- that this only includes the alias name and not its expanded email addresses.
- See 'sendemail.aliasesFile' for more information about aliases.
-
---translate-aliases::
- Instead of the normal operation, read from standard input and
- interpret each line as an email alias. Translate it according to the
- configured alias file(s). Output each translated name and email
- address to standard output, one per line. See 'sendemail.aliasFile'
- for more information about aliases.
-
-CONFIGURATION
--------------
-
-include::includes/cmd-config-section-all.txt[]
-
-include::config/sendemail.txt[]
-
-EXAMPLES
---------
-Use gmail as the smtp server
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-To use 'git send-email' to send your patches through the GMail SMTP server,
-edit ~/.gitconfig to specify your account settings:
-
-----
-[sendemail]
- smtpEncryption = tls
- smtpServer = smtp.gmail.com
- smtpUser = yourname@gmail.com
- smtpServerPort = 587
-----
-
-If you have multi-factor authentication set up on your Gmail account, you can
-generate an app-specific password for use with 'git send-email'. Visit
-https://security.google.com/settings/security/apppasswords to create it.
-
-Once your commits are ready to be sent to the mailing list, run the
-following commands:
-
- $ git format-patch --cover-letter -M origin/master -o outgoing/
- $ edit outgoing/0000-*
- $ git send-email outgoing/*
-
-The first time you run it, you will be prompted for your credentials. Enter the
-app-specific or your regular password as appropriate. If you have credential
-helper configured (see linkgit:git-credential[1]), the password will be saved in
-the credential store so you won't have to type it the next time.
-
-Note: the following core Perl modules that may be installed with your
-distribution of Perl are required:
-MIME::Base64, MIME::QuotedPrint, Net::Domain and Net::SMTP.
-These additional Perl modules are also required:
-Authen::SASL and Mail::Address.
-
-
-SEE ALSO
---------
-linkgit:git-format-patch[1], linkgit:git-imap-send[1], mbox(5)
-
-GIT
----
-Part of the linkgit:git[1] suite