summaryrefslogtreecommitdiff
path: root/Documentation/git-format-patch.txt
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-08-28 07:38:48 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-08-28 07:38:48 (GMT)
commit8a1d076e21810f5bc7e9ef10d84f7ca9637b89af (patch)
tree02044913746de08e73295921df2053306eb5236c /Documentation/git-format-patch.txt
parent170c04383bca07fb5a32227474dfd58f29258d25 (diff)
downloadgit-8a1d076e21810f5bc7e9ef10d84f7ca9637b89af.zip
git-8a1d076e21810f5bc7e9ef10d84f7ca9637b89af.tar.gz
git-8a1d076e21810f5bc7e9ef10d84f7ca9637b89af.tar.bz2
"format-patch --root rev" is the way to show everything.
We used to trigger the special case "things not in origin" semantics only when one and only one positive ref is given, and no number (e.g. "git format-patch -4 origin") was specified, and used the general revision range semantics for everything else. This narrows the special case a bit more, by making: git format-patch --root this_version to show everything that leads to the named commit. More importantly, document the two different semantics better. The generic revision range semantics came later and bolted on without being clearly documented. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/git-format-patch.txt')
-rw-r--r--Documentation/git-format-patch.txt29
1 files changed, 22 insertions, 7 deletions
diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index c514fdd..5e6d537 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -16,21 +16,32 @@ SYNOPSIS
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
[--ignore-if-in-upstream]
[--subject-prefix=Subject-Prefix]
- <since>[..<until>]
+ [ <since> | <revision range> ]
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.
-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].
+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 that is taken as
+ the special case above. If you want to format everything
+ since project inception to one commit, say "git format-patch
+ \--root <that-commit>", as showing the root commit as patch
+ requires \--root option anyway.
+
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
@@ -153,6 +164,10 @@ git-format-patch origin::
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