X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-merge.sh;h=4609fe54d52843f42d2c1d18a9dc2ff235b5c7ce;hb=8c0db2f5193153ea8a51bb45b0512c5a3889023b;hp=0a158ef779eb8717f27e632e31726f00586979ed;hpb=2414721b194453f058079d897d13c4e377f92dc6;p=git.git diff --git a/git-merge.sh b/git-merge.sh index 0a158ef7..4609fe54 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -13,6 +13,10 @@ LF=' all_strategies='recursive octopus resolve stupid ours' default_strategies='recursive' use_strategies= +if test "@@NO_PYTHON@@"; then + all_strategies='resolve octopus stupid ours' + default_strategies='resolve' +fi dropsave() { rm -f -- "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/MERGE_MSG" \ @@ -142,6 +146,8 @@ case "$#,$common,$no_commit" in 1,*,) # We are not doing octopus, not fast forward, and have only # one common. See if it is really trivial. + git var GIT_COMMITTER_IDENT >/dev/null || exit + echo "Trying really trivial in-index merge..." git-update-index --refresh 2>/dev/null if git-read-tree --trivial -m -u $common $head "$1" && @@ -179,6 +185,9 @@ case "$#,$common,$no_commit" in ;; esac +# We are going to make a new commit. +git var GIT_COMMITTER_IDENT >/dev/null || exit + case "$use_strategies" in '') case "$#" in @@ -293,7 +302,7 @@ for remote do echo $remote done >"$GIT_DIR/MERGE_HEAD" -echo $merge_msg >"$GIT_DIR/MERGE_MSG" +echo "$merge_msg" >"$GIT_DIR/MERGE_MSG" if test "$merge_was_ok" = t then @@ -301,5 +310,17 @@ then "Automatic merge went well; stopped before committing as requested" exit 0 else + { + echo ' +Conflicts: +' + git ls-files --unmerged | + sed -e 's/^[^ ]* / /' | + uniq + } >>"$GIT_DIR/MERGE_MSG" + if test -d "$GIT_DIR/rr-cache" + then + git-rerere + fi die "Automatic merge failed; fix up by hand" fi