mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
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>
This commit is contained in:
11
git-merge.sh
11
git-merge.sh
@@ -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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user