aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael J Gruber <git@drmicha.warpmail.net>2009-08-05 09:59:20 +0200
committerJunio C Hamano <gitster@pobox.com>2009-08-05 10:29:37 -0700
commitf621a8454d19d17fe46e6951b7e3d22bebd92aba (patch)
treeaae7fd662daff4819773be4deee37e564c4a0bdf
parent995bdc73fe0e28d622af0897440f0ea298345585 (diff)
downloadgit-f621a8454d19d17fe46e6951b7e3d22bebd92aba.tar.gz
git-f621a8454d19d17fe46e6951b7e3d22bebd92aba.tar.xz
git-merge-base/git-show-branch --merge-base: Documentation and test
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>
-rw-r--r--Documentation/git-merge-base.txt4
-rw-r--r--Documentation/git-show-branch.txt8
-rw-r--r--builtin-show-branch.c2
-rwxr-xr-xt/t6010-merge-base.sh6
4 files changed, 16 insertions, 4 deletions
diff --git a/Documentation/git-merge-base.txt b/Documentation/git-merge-base.txt
index 00e400353..ce5b36998 100644
--- a/Documentation/git-merge-base.txt
+++ b/Documentation/git-merge-base.txt
@@ -27,6 +27,10 @@ commits on the command line. As the most common special case, specifying only
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::
diff --git a/Documentation/git-show-branch.txt b/Documentation/git-show-branch.txt
index 2c78c2571..734336119 100644
--- a/Documentation/git-show-branch.txt
+++ b/Documentation/git-show-branch.txt
@@ -82,9 +82,11 @@ OPTIONS
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 03bdea686..3510a86e3 100644
--- a/builtin-show-branch.c
+++ b/builtin-show-branch.c
@@ -665,7 +665,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
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 79124ec76..0144d9e85 100755
--- a/t/t6010-merge-base.sh
+++ b/t/t6010-merge-base.sh
@@ -149,6 +149,12 @@ test_expect_success 'merge-base A B C' '
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 &&