Document --ignore-if-in-upstream in git-format-patch
PATCH 1/1 Document --ignore-if-in-upstream in git-format-patch
--- Documentation/git-format-patch.txt | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
I looked at the code, and tried to guess what it actually did. This documentation doesn't really explain how or why it's supposed to be used.
Someone who knows how it *actually* works is encouraged to send a better explanation.
Documentation/git-format-patch.txt +6 -0
@@ -12,6 +12,7 @@ SYNOPSIS 'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [--thread] [-s | --signoff] [--diff-options] [--start-number <n>] [--in-reply-to=Message-Id] + [--ignore-if-in-upstream] <since>[..<until>] DESCRIPTION
@@ -78,6 +79,11 @@ OPTIONS reply to the given Message-Id, which avoids breaking threads to provide a new patch series. +--ignore-if-in-upstream:: + Do not include the same patch twice. If there are two commits + that would produce identical patches, the second one is + excluded from the output. + CONFIGURATION ------------- You can specify extra mail header lines to be added to each
Signature · 5 lines
1.5.0.rc1.g04f3-dirty -- David Kågedal
Hi,
Quoted 2 lines · David Kågedal
Someone who knows how it *actually* works is encouraged to send a better explanation.
Nice try... Unfortunately, I don't have time to do it.
Documentation/git-format-patch.txt OPTIONS · line 85
Quoted 4 lines
+--ignore-if-in-upstream::
Documentation/git-format-patch.txt +3
-0+ Do not include the same patch twice. If there are two commits + that would produce identical patches, the second one is + excluded from the output.
This is not what it does, though. (If in doubt, use the source, Luke).
Given a range upstream..localbranch, --ignore-if-in-upstream looks at all diffs associated with commits in localbranch..upstream (i.e. all commits upstream has, but not localbranch), and when traversing upstream..localbranch to output the commits with diffs, drops those at the floor which were already seen in localbranch..upstream.
The way it does this is by hashing the diffs, and check only the hashes.
Ciao,
Dscho
Quoted 7 lines · Johannes Schindelin
Hi,
Quoted 2 lines · David Kågedal
Someone who knows how it *actually* works is encouraged to send a better explanation.
Quoted 8 lines
Nice try... Unfortunately, I don't have time to do it.
Documentation/git-format-patch.txt OPTIONS · line 85
Quoted 4 lines
+--ignore-if-in-upstream::
Documentation/git-format-patch.txt +3
-0+ Do not include the same patch twice. If there are two commits + that would produce identical patches, the second one is + excluded from the output.This is not what it does, though. (If in doubt, use the source, Luke).
I did. But I haven't learnt to navigate it yet. I get confused by the global state in the code, which makes it hard to know when I function call returns interesting information or changes some global table.
Quoted 5 lines
Given a range upstream..localbranch, --ignore-if-in-upstream looks at all diffs associated with commits in localbranch..upstream (i.e. all commits upstream has, but not localbranch), and when traversing upstream..localbranch to output the commits with diffs, drops those at the floor which were already seen in localbranch..upstream.
Ah, now I see. How about this, then:
+--ignore-if-in-upstream:: + Do not include a patch that matches a commit in + <until>..<since>. This will examine all patches reachable + from <since> but not from <until> and compare them with the + patches being generated, and any patch that matches is + ignored.
It's hard to get something readable without writing lots about what <since>..<until> actually means. Which might actually be a good idea to do. But I don't have time to do that :-)
Signature · 1 line
David Kågedal
Hi,
Review
Quoted 6 lines · David Kågedal
+--ignore-if-in-upstream::
(quoted diff) +5
-0+ Do not include a patch that matches a commit in + <until>..<since>. This will examine all patches reachable + from <since> but not from <until> and compare them with the + patches being generated, and any patch that matches is + ignored.
Melikes.
Thanks both.