path.c: refactor relative_path(), not only strip prefix
[gitweb.git] / Documentation / git-send-email.txt
index 05904e0e7f31896191bc10224c09d14e91372952..40a9a9abc14f175738986b244207655b296cc31d 100644 (file)
@@ -8,6 +8,7 @@ git-send-email - Send a collection of patches as emails
 
 SYNOPSIS
 --------
+[verse]
 'git send-email' [options] <file|directory|rev-list options>...
 
 
@@ -44,8 +45,9 @@ Composing
 ~~~~~~~~~
 
 --annotate::
-       Review and edit each patch you're about to send. See the
-       CONFIGURATION section for 'sendemail.multiedit'.
+       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
@@ -66,7 +68,7 @@ The --cc option must be repeated for each user you want on the cc list.
 When '--compose' is used, git send-email will use the From, Subject, 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 From, Subject,
+(or Git: prefixed) lines the summary won't be sent, but From, Subject,
 and In-Reply-To headers will be used unless they are removed.
 +
 Missing From or In-Reply-To headers will be prompted for.
@@ -82,11 +84,26 @@ See the CONFIGURATION section for 'sendemail.multiedit'.
        set, as returned by "git var -l".
 
 --in-reply-to=<identifier>::
-       Specify the contents of the first In-Reply-To header.
-       Subsequent emails will refer to the previous email
-       instead of this if --chain-reply-to is set.
-       Only necessary if --compose is also set.  If --compose
-       is not set, this will be prompted for.
+       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.
@@ -110,6 +127,10 @@ The --to option must be repeated for each user you want on the to list.
 +
 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.
+
 
 Sending
 ~~~~~~~
@@ -144,8 +165,8 @@ Sending
 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 the
-user is prompted for a password while the input is masked for privacy.
+specified (with '--smtp-pass' or 'sendemail.smtppass'), then
+a password is obtained using 'git-credential'.
 
 --smtp-server=<host>::
        If set, specifies the outgoing SMTP server to use (e.g.
@@ -182,6 +203,10 @@ must be used for each option.
        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.
 
 Automating
 ~~~~~~~~~~
@@ -307,6 +332,9 @@ have been specified, in which case default to 'compose'.
 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.
+
 
 CONFIGURATION
 -------------
@@ -330,11 +358,12 @@ sendemail.confirm::
        one of 'always', 'never', 'cc', 'compose', or 'auto'. See '--confirm'
        in the previous section for the meaning of these values.
 
-
+EXAMPLE
+-------
 Use gmail as the smtp server
-----------------------------
-
-Add the following section to the config file:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+To use 'git send-email' to send your patches through the GMail SMTP server,
+edit ~/.gitconfig to specify your account settings:
 
        [sendemail]
                smtpencryption = tls
@@ -342,22 +371,19 @@ Add the following section to the config file:
                smtpuser = yourname@gmail.com
                smtpserverport = 587
 
-Note: the following perl modules are required
-      Net::SMTP::SSL, MIME::Base64 and Authen::SASL
-
-
-Author
-------
-Written by Ryan Anderson <ryan@michonline.com>
+Once your commits are ready to be sent to the mailing list, run the
+following commands:
 
-git-send-email is originally based upon
-send_lots_of_email.pl by Greg Kroah-Hartman.
+       $ git format-patch --cover-letter -M origin/master -o outgoing/
+       $ edit outgoing/0000-*
+       $ git send-email outgoing/*
 
+Note: the following perl modules are required
+      Net::SMTP::SSL, MIME::Base64 and Authen::SASL
 
-Documentation
---------------
-Documentation by Ryan Anderson
-
+SEE ALSO
+--------
+linkgit:git-format-patch[1], linkgit:git-imap-send[1], mbox(5)
 
 GIT
 ---