Code

Merge branch 'mh/maint-http-proxy-fix' into maint
[git.git] / Documentation / git-format-patch.txt
index 6cbcf937bcd3128b27fbce673d8500590a3f66ce..651efe6ca16a02841c49f4b6a57ae2cf5ae8183d 100644 (file)
@@ -9,27 +9,42 @@ git-format-patch - Prepare patches for e-mail submission
 SYNOPSIS
 --------
 [verse]
 SYNOPSIS
 --------
 [verse]
-'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--thread]
+'git-format-patch' [-k] [-o <dir> | --stdout] [--thread]
                    [--attach[=<boundary>] | --inline[=<boundary>]]
                    [-s | --signoff] [<common diff options>]
                    [--attach[=<boundary>] | --inline[=<boundary>]]
                    [-s | --signoff] [<common diff options>]
+                   [-n | --numbered | -N | --no-numbered]
                    [--start-number <n>] [--numbered-files]
                    [--in-reply-to=Message-Id] [--suffix=.<sfx>]
                    [--ignore-if-in-upstream]
                    [--subject-prefix=Subject-Prefix]
                    [--start-number <n>] [--numbered-files]
                    [--in-reply-to=Message-Id] [--suffix=.<sfx>]
                    [--ignore-if-in-upstream]
                    [--subject-prefix=Subject-Prefix]
-                   <since>[..<until>]
+                  [ <since> | <revision range> ]
 
 DESCRIPTION
 -----------
 
 
 DESCRIPTION
 -----------
 
-Prepare each commit between <since> and <until> with its patch in
+Prepare each commit with its patch in
 one file per commit, formatted to resemble UNIX mailbox format.
 one file per commit, formatted to resemble UNIX mailbox format.
-If ..<until> is not specified, the head of the current working
-tree is implied.  For a more complete list of ways to spell
-<since> and <until>, see "SPECIFYING REVISIONS" section in
-gitlink:git-rev-parse[1].
-
 The output of this command is convenient for e-mail submission or
 The output of this command is convenient for e-mail submission or
-for use with gitlink:git-am[1].
+for use with linkgit:git-am[1].
+
+There are two ways to specify which commits to operate on.
+
+1. A single commit, <since>, specifies that the commits leading
+   to the tip of the current branch that are not in the history
+   that leads to the <since> to be output.
+
+2. Generic <revision range> expression (see "SPECIFYING
+   REVISIONS" section in linkgit:git-rev-parse[1]) means the
+   commits in the specified range.
+
+A single commit, when interpreted as a <revision range>
+expression, means "everything that leads to that commit", but
+if you write 'git format-patch <commit>', the previous rule
+applies to that command line and you do not get "everything
+since the beginning of the time".  If you want to format
+everything since project inception to one commit, say "git
+format-patch \--root <commit>" to make it clear that it is the
+latter case.
 
 By default, each output file is numbered sequentially from 1, and uses the
 first line of the commit message (massaged for pathname safety) as
 
 By default, each output file is numbered sequentially from 1, and uses the
 first line of the commit message (massaged for pathname safety) as
@@ -51,6 +66,7 @@ reference.
 
 OPTIONS
 -------
 
 OPTIONS
 -------
+:git-format-patch: 1
 include::diff-options.txt[]
 
 -<n>::
 include::diff-options.txt[]
 
 -<n>::
@@ -63,6 +79,9 @@ include::diff-options.txt[]
 -n|--numbered::
        Name output in '[PATCH n/m]' format.
 
 -n|--numbered::
        Name output in '[PATCH n/m]' format.
 
+-N|--no-numbered::
+       Name output in '[PATCH]' format.
+
 --start-number <n>::
        Start numbering the patches at <n> instead of 1.
 
 --start-number <n>::
        Start numbering the patches at <n> instead of 1.
 
@@ -118,7 +137,7 @@ include::diff-options.txt[]
 
 --suffix=.<sfx>::
        Instead of using `.patch` as the suffix for generated
 
 --suffix=.<sfx>::
        Instead of using `.patch` as the suffix for generated
-       filenames, use specifed suffix.  A common alternative is
+       filenames, use specified suffix.  A common alternative is
        `--suffix=.txt`.
 +
 Note that you would need to include the leading dot `.` if you
        `--suffix=.txt`.
 +
 Note that you would need to include the leading dot `.` if you
@@ -128,15 +147,16 @@ not add any suffix.
 
 CONFIGURATION
 -------------
 
 CONFIGURATION
 -------------
-You can specify extra mail header lines to be added to each
-message in the repository configuration.  You can also specify
-new defaults for the subject prefix and file suffix.
+You can specify extra mail header lines to be added to each message
+in the repository configuration, new defaults for the subject prefix
+and file suffix, and number patches when outputting more than one.
 
 ------------
 [format]
         headers = "Organization: git-foo\n"
         subjectprefix = CHANGE
         suffix = .txt
 
 ------------
 [format]
         headers = "Organization: git-foo\n"
         subjectprefix = CHANGE
         suffix = .txt
+        numbered = auto
 ------------
 
 
 ------------
 
 
@@ -153,6 +173,10 @@ git-format-patch origin::
        not in the origin branch.  For each commit a separate file
        is created in the current directory.
 
        not in the origin branch.  For each commit a separate file
        is created in the current directory.
 
+git-format-patch \--root origin::
+       Extract all commits that lead to 'origin' since the
+       inception of the project.
+
 git-format-patch -M -B origin::
        The same as the previous one.  Additionally, it detects
        and handles renames and complete rewrites intelligently to
 git-format-patch -M -B origin::
        The same as the previous one.  Additionally, it detects
        and handles renames and complete rewrites intelligently to
@@ -168,7 +192,7 @@ git-format-patch -3::
 
 See Also
 --------
 
 See Also
 --------
-gitlink:git-am[1], gitlink:git-send-email[1]
+linkgit:git-am[1], linkgit:git-send-email[1]
 
 
 Author
 
 
 Author
@@ -181,4 +205,4 @@ Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
 
 GIT
 ---
 
 GIT
 ---
-Part of the gitlink:git[7] suite
+Part of the linkgit:git[7] suite