Browse Source

Use 'merge-base --all' where applicable.

It may get extra merge base on truly pathological commit histories,
but is a lot easier to understand, explain, and prove correctness.

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 19 years ago
parent
commit
13956670a7
  1. 11
      git-merge.sh

11
git-merge.sh

@ -110,7 +110,14 @@ do @@ -110,7 +110,14 @@ do
die "$remote - not something we can merge"
done

common=$(git-show-branch --merge-base $head "$@")
case "$#" in
1)
common=$(git-merge-base --all $head "$@")
;;
*)
common=$(git-show-branch --merge-base $head "$@")
;;
esac
echo "$head" >"$GIT_DIR/ORIG_HEAD"

case "$#,$common,$no_commit" in
@ -162,7 +169,7 @@ case "$#,$common,$no_commit" in @@ -162,7 +169,7 @@ case "$#,$common,$no_commit" in
up_to_date=t
for remote
do
common_one=$(git-merge-base $head $remote)
common_one=$(git-merge-base --all $head $remote)
if test "$common_one" != "$remote"
then
up_to_date=f

Loading…
Cancel
Save