Make 'diff_populate_filespec()' use the new 'strbuf_readlink()'
[git/dscho.git] / Documentation / git-send-email.txt
blob12788667d43a3f94d46b802cd1225cf8bc517129
1 git-send-email(1)
2 =================
4 NAME
5 ----
6 git-send-email - Send a collection of patches as emails
9 SYNOPSIS
10 --------
11 'git send-email' [options] <file|directory|rev-list options>...
14 DESCRIPTION
15 -----------
16 Takes the patches given on the command line and emails them out.
18 The header of the email is configurable by command line options.  If not
19 specified on the command line, the user will be prompted with a ReadLine
20 enabled interface to provide the necessary information.
23 OPTIONS
24 -------
26 Composing
27 ~~~~~~~~~
29 --bcc::
30         Specify a "Bcc:" value for each email. Default is the value of
31         'sendemail.bcc'.
33 The --bcc option must be repeated for each user you want on the bcc list.
35 --cc::
36         Specify a starting "Cc:" value for each email.
38 The --cc option must be repeated for each user you want on the cc list.
40 --annotate::
41         Review each patch you're about to send in an editor. The setting
42         'sendemail.multiedit' defines if this will spawn one editor per patch
43         or one for all of them at once.
45 --compose::
46         Use $GIT_EDITOR, core.editor, $VISUAL, or $EDITOR to edit an
47         introductory message for the patch series.
49 When '--compose' is used, git send-email gets less interactive will use the
50 values of the headers you set there. If the body of the email (what you type
51 after the headers and a blank line) only contains blank (or GIT: prefixed)
52 lines, the summary won't be sent, but git-send-email will still use the
53 Headers values if you don't removed them.
55 If it wasn't able to see a header in the summary it will ask you about it
56 interactively after quitting your editor.
58 --from::
59         Specify the sender of the emails.  This will default to
60         the value GIT_COMMITTER_IDENT, as returned by "git var -l".
61         The user will still be prompted to confirm this entry.
63 --in-reply-to::
64         Specify the contents of the first In-Reply-To header.
65         Subsequent emails will refer to the previous email
66         instead of this if --chain-reply-to is set (the default)
67         Only necessary if --compose is also set.  If --compose
68         is not set, this will be prompted for.
70 --subject::
71         Specify the initial subject of the email thread.
72         Only necessary if --compose is also set.  If --compose
73         is not set, this will be prompted for.
75 --to::
76         Specify the primary recipient of the emails generated. Generally, this
77         will be the upstream maintainer of the project involved. Default is the
78         value of the 'sendemail.to' configuration value; if that is unspecified,
79         this will be prompted for.
81 The --to option must be repeated for each user you want on the to list.
84 Sending
85 ~~~~~~~
87 --envelope-sender::
88         Specify the envelope sender used to send the emails.
89         This is useful if your default address is not the address that is
90         subscribed to a list. If you use the sendmail binary, you must have
91         suitable privileges for the -f parameter. Default is the value of
92         the 'sendemail.envelopesender' configuration variable; if that is
93         unspecified, choosing the envelope sender is left to your MTA.
95 --smtp-encryption::
96         Specify the encryption to use, either 'ssl' or 'tls'.  Any other
97         value reverts to plain SMTP.  Default is the value of
98         'sendemail.smtpencryption'.
100 --smtp-pass::
101         Password for SMTP-AUTH. The argument is optional: If no
102         argument is specified, then the empty string is used as
103         the password. Default is the value of 'sendemail.smtppass',
104         however '--smtp-pass' always overrides this value.
106 Furthermore, passwords need not be specified in configuration files
107 or on the command line. If a username has been specified (with
108 '--smtp-user' or a 'sendemail.smtpuser'), but no password has been
109 specified (with '--smtp-pass' or 'sendemail.smtppass'), then the
110 user is prompted for a password while the input is masked for privacy.
112 --smtp-server::
113         If set, specifies the outgoing SMTP server to use (e.g.
114         `smtp.example.com` or a raw IP address).  Alternatively it can
115         specify a full pathname of a sendmail-like program instead;
116         the program must support the `-i` option.  Default value can
117         be specified by the 'sendemail.smtpserver' configuration
118         option; the built-in default is `/usr/sbin/sendmail` or
119         `/usr/lib/sendmail` if such program is available, or
120         `localhost` otherwise.
122 --smtp-server-port::
123         Specifies a port different from the default port (SMTP
124         servers typically listen to smtp port 25 and ssmtp port
125         465). This can be set with 'sendemail.smtpserverport'.
127 --smtp-ssl::
128         Legacy alias for '--smtp-encryption ssl'.
130 --smtp-user::
131         Username for SMTP-AUTH. Default is the value of 'sendemail.smtpuser';
132         if a username is not specified (with '--smtp-user' or 'sendemail.smtpuser'),
133         then authentication is not attempted.
136 Automating
137 ~~~~~~~~~~
139 --cc-cmd::
140         Specify a command to execute once per patch file which
141         should generate patch file specific "Cc:" entries.
142         Output of this command must be single email address per line.
143         Default is the value of 'sendemail.cccmd' configuration value.
145 --[no-]chain-reply-to::
146         If this is set, each email will be sent as a reply to the previous
147         email sent.  If disabled with "--no-chain-reply-to", all emails after
148         the first will be sent as replies to the first email sent.  When using
149         this, it is recommended that the first file given be an overview of the
150         entire patch series. Default is the value of the 'sendemail.chainreplyto'
151         configuration value; if that is unspecified, default to --chain-reply-to.
153 --identity::
154         A configuration identity. When given, causes values in the
155         'sendemail.<identity>' subsection to take precedence over
156         values in the 'sendemail' section. The default identity is
157         the value of 'sendemail.identity'.
159 --[no-]signed-off-by-cc::
160         If this is set, add emails found in Signed-off-by: or Cc: lines to the
161         cc list. Default is the value of 'sendemail.signedoffbycc' configuration
162         value; if that is unspecified, default to --signed-off-by-cc.
164 --suppress-cc::
165         Specify an additional category of recipients to suppress the
166         auto-cc of.  'self' will avoid including the sender, 'author' will
167         avoid including the patch author, 'cc' will avoid including anyone
168         mentioned in Cc lines in the patch, 'sob' will avoid including
169         anyone mentioned in Signed-off-by lines, and 'cccmd' will avoid
170         running the --cc-cmd.  'all' will suppress all auto cc values.
171         Default is the value of 'sendemail.suppresscc' configuration value;
172         if that is unspecified, default to 'self' if --suppress-from is
173         specified, as well as 'sob' if --no-signed-off-cc is specified.
175 --[no-]suppress-from::
176         If this is set, do not add the From: address to the cc: list.
177         Default is the value of 'sendemail.suppressfrom' configuration
178         value; if that is unspecified, default to --no-suppress-from.
180 --[no-]thread::
181         If this is set, the In-Reply-To header will be set on each email sent.
182         If disabled with "--no-thread", no emails will have the In-Reply-To
183         header set. Default is the value of the 'sendemail.thread' configuration
184         value; if that is unspecified, default to --thread.
187 Administering
188 ~~~~~~~~~~~~~
190 --dry-run::
191         Do everything except actually send the emails.
193 --quiet::
194         Make git-send-email less verbose.  One line per email should be
195         all that is output.
197 --[no-]validate::
198         Perform sanity checks on patches.
199         Currently, validation means the following:
201 --[no-]format-patch::
202         When an argument may be understood either as a reference or as a file name,
203         choose to understand it as a format-patch argument ('--format-patch')
204         or as a file name ('--no-format-patch'). By default, when such a conflict
205         occurs, git send-email will fail.
208                 *       Warn of patches that contain lines longer than 998 characters; this
209                         is due to SMTP limits as described by http://www.ietf.org/rfc/rfc2821.txt.
212 Default is the value of 'sendemail.validate'; if this is not set,
213 default to '--validate'.
216 CONFIGURATION
217 -------------
219 sendemail.aliasesfile::
220         To avoid typing long email addresses, point this to one or more
221         email aliases files.  You must also supply 'sendemail.aliasfiletype'.
223 sendemail.aliasfiletype::
224         Format of the file(s) specified in sendemail.aliasesfile. Must be
225         one of 'mutt', 'mailrc', 'pine', or 'gnus'.
227 sendemail.multiedit::
228         If true (default), a single editor instance will be spawned to edit
229         files you have to edit (patches when '--annotate' is used, and the
230         summary when '--compose' is used). If false, files will be edited one
231         after the other, spawning a new editor each time.
234 Author
235 ------
236 Written by Ryan Anderson <ryan@michonline.com>
238 git-send-email is originally based upon
239 send_lots_of_email.pl by Greg Kroah-Hartman.
242 Documentation
243 --------------
244 Documentation by Ryan Anderson
249 Part of the linkgit:git[1] suite