Code

Add tests for parse-options.c
[git.git] / Documentation / git-format-patch.txt
index 647de90361b30aeb39b4b2707a295e21863510ee..c9857a2d62e55edaf7e71c1a89ae09c8ae2423d2 100644 (file)
@@ -16,21 +16,35 @@ SYNOPSIS
                    [--in-reply-to=Message-Id] [--suffix=.<sfx>]
                    [--ignore-if-in-upstream]
                    [--subject-prefix=Subject-Prefix]
                    [--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
 for use with gitlink:git-am[1].
 
 The output of this command is convenient for e-mail submission or
 for use with gitlink: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 gitlink: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
 the filename. With the --numbered-files option, the output file names
 By default, each output file is numbered sequentially from 1, and uses the
 first line of the commit message (massaged for pathname safety) as
 the filename. With the --numbered-files option, the output file names
@@ -53,6 +67,9 @@ OPTIONS
 -------
 include::diff-options.txt[]
 
 -------
 include::diff-options.txt[]
 
+-<n>::
+       Limits the number of patches to prepare.
+
 -o|--output-directory <dir>::
        Use <dir> to store the resulting files, instead of the
        current working directory.
 -o|--output-directory <dir>::
        Use <dir> to store the resulting files, instead of the
        current working directory.
@@ -115,7 +132,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
@@ -126,12 +143,13 @@ not add any suffix.
 CONFIGURATION
 -------------
 You can specify extra mail header lines to be added to each
 CONFIGURATION
 -------------
 You can specify extra mail header lines to be added to each
-message in the repository configuration.  Also you can specify
-the default suffix different from the built-in one:
+message in the repository configuration.  You can also specify
+new defaults for the subject prefix and file suffix.
 
 ------------
 [format]
         headers = "Organization: git-foo\n"
 
 ------------
 [format]
         headers = "Organization: git-foo\n"
+        subjectprefix = CHANGE
         suffix = .txt
 ------------
 
         suffix = .txt
 ------------
 
@@ -149,6 +167,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 which that leads 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