merge script: handle many-way octopus
authorJonathan Nieder <jrnieder@gmail.com>
Tue, 17 Aug 2010 07:09:58 +0000 (02:09 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 18 Aug 2010 21:02:05 +0000 (14:02 -0700)
Based on v1.6.0-rc0~51^2~5 (Build in merge, 2008-07-07).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/examples/git-merge.sh

index 91e33a3f0368f35274f43ca7eebc1b0cf557be27..410fa3c815680c3f9894b82bfa43545da91c75cb 100755 (executable)
@@ -374,7 +374,7 @@ case "$#" in
        common=$(git merge-base --all $head "$@")
        ;;
 *)
-       common=$(git show-branch --merge-base $head "$@")
+       common=$(git merge-base --all --octopus $head "$@")
        ;;
 esac
 echo "$head" >"$GIT_DIR/ORIG_HEAD"
@@ -528,9 +528,9 @@ if test '' != "$result_tree"
 then
     if test "$allow_fast_forward" = "t"
     then
-        parents=$(git show-branch --independent "$head" "$@")
+       parents=$(git merge-base --independent "$head" "$@")
     else
-        parents=$(git rev-parse "$head" "$@")
+       parents=$(git rev-parse "$head" "$@")
     fi
     parents=$(echo "$parents" | sed -e 's/^/-p /')
     result_commit=$(printf '%s\n' "$merge_msg" | git commit-tree $result_tree $parents) || exit