X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-merge.sh;h=74f07610fa2042ef0f2cb12c051d3be9139a680b;hb=1561a9b662bb4721e01654c44854efffa005169e;hp=e50fbb1160ad6ccfebc0d65fcc54bc3488e597cd;hpb=1ed91937e5cd59fdbdfa5f15f6fac132d2b21ce0;p=git.git diff --git a/git-merge.sh b/git-merge.sh index e50fbb11..74f07610 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -209,6 +209,7 @@ case "$use_strategies" in esac result_tree= best_cnt=-1 best_strategy= wt_strategy= +merge_was_ok= for strategy in $use_strategies do test "$wt_strategy" = '' || { @@ -228,6 +229,7 @@ do exit=$? if test "$no_commit" = t && test "$exit" = 0 then + merge_was_ok=t exit=1 ;# pretend it left conflicts. fi @@ -291,6 +293,25 @@ for remote do echo $remote done >"$GIT_DIR/MERGE_HEAD" -echo $merge_msg >"$GIT_DIR/MERGE_MSG" +echo "$merge_msg" >"$GIT_DIR/MERGE_MSG" -die "Automatic merge failed/prevented; fix up by hand" +if test "$merge_was_ok" = t +then + echo >&2 \ + "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