summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 995bdc7)
raw | patch | inline | side by side (parent: 995bdc7)
author | Michael J Gruber <git@drmicha.warpmail.net> | |
Wed, 5 Aug 2009 07:59:20 +0000 (09:59 +0200) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 5 Aug 2009 17:29:37 +0000 (10:29 -0700) |
Currently, the documentation suggests that 'git merge-base -a' and 'git
show-branch --merge-base' are equivalent (in fact it claims that the
former cannot handle more than two revs).
Alas, the handling of more than two revs is very different. Document
this by tests and correct the documentation to reflect this.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
show-branch --merge-base' are equivalent (in fact it claims that the
former cannot handle more than two revs).
Alas, the handling of more than two revs is very different. Document
this by tests and correct the documentation to reflect this.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
index 00e400353c5bfe1d6f4a75b5bf2dee9d7eca21bc..ce5b369985c254ec5d986aa3dd250828cf3cc4cb 100644 (file)
two commits on the command line means computing the merge base between
the given two commits.
+As a consequence, the 'merge base' is not necessarily contained in each of the
+commit arguments if more than two commits are specified. This is different
+from linkgit:git-show-branch[1] when used with the `--merge-base` option.
+
OPTIONS
-------
-a::
index 2c78c25713c108502b45bdf8d512efe22698a584..734336119c6b1f7ea8241f0404eaa3ba2ae10f69 100644 (file)
Synonym to `--more=-1`
--merge-base::
- Instead of showing the commit list, just act like the
- 'git-merge-base -a' command, except that it can accept
- more than two heads.
+ Instead of showing the commit list, determine possible
+ merge bases for the specified commits. All merge bases
+ will be contained in all specified commits. This is
+ different from how linkgit:git-merge-base[1] handles
+ the case of three or more commits.
--independent::
Among the <reference>s given, display only the ones that
diff --git a/builtin-show-branch.c b/builtin-show-branch.c
index 03bdea686321be4785ba9d4fe0de3fe92449fdab..3510a86e38d2821880060d4faa554c016a9f95e2 100644 (file)
--- a/builtin-show-branch.c
+++ b/builtin-show-branch.c
OPT_BOOLEAN(0, "sha1-name", &sha1_name,
"name commits with their object names"),
OPT_BOOLEAN(0, "merge-base", &merge_base,
- "act like git merge-base -a"),
+ "show possible merge bases"),
OPT_BOOLEAN(0, "independent", &independent,
"show refs unreachable from any other ref"),
OPT_BOOLEAN(0, "topo-order", &lifo,
diff --git a/t/t6010-merge-base.sh b/t/t6010-merge-base.sh
index 79124ec761a90fd0e2f028b4566fd21947ba5490..0144d9e858d2d8bf1720331c52f1809ed36e81b0 100755 (executable)
--- a/t/t6010-merge-base.sh
+++ b/t/t6010-merge-base.sh
test "$MM1" = "$MB"
'
+test_expect_success 'merge-base A B C using show-branch' '
+ MB=$(git show-branch --merge-base MMA MMB MMC) &&
+ MMR=$(git rev-parse --verify MMR) &&
+ test "$MMR" = "$MB"
+'
+
test_expect_success 'criss-cross merge-base for octopus-step (setup)' '
git reset --hard MMR &&
test_tick && git commit --allow-empty -m 1 && git tag CC1 &&