On Wed, Jul 17, 2019 at 01:38:35PM -0700, Junio C Hamano wrote: > When resolving a conflict on a path in favor of removing it, using > "git rm" on it is the standard way to do so. The user however is > greeted with a "needs merge" message during that operation: > > $ git merge side-branch > $ edit conflicted-path-1 > $ git add conflicted-path-1 > $ git rm conflicted-path-2 > conflicted-path-2: needs merge > rm 'conflicted-path-2' > > The removal by "git rm" does get performed, but an uninitiated user > may find it confusing, "needs merge? so I need to resolve conflict > before being able to remove it???" > > The message is coming from "update-index --refresh" that is called > internally to make sure "git rm" knows which paths are clean and > which paths are dirty, in order to prevent removal of paths modified > relative to the index without the "-f" option. We somehow ended up > not squelching this message which seeped through to the UI surface. > > Use the same mechanism used by "git commit", "git describe", etc. to > squelch the message. Nicely explained, and the patch makes sense. > +test_expect_success 'Resolving by removal is not a warning-worthy event' ' > + git reset -q --hard && > + test_when_finished "rm -f .git/index.lock msg && git reset -q --hard" && > + qfwfq=$(echo qfwfq | git hash-object -w --stdin) && I'd have called this "$blob" for my own sanity in typing later lines, but OK. :) > + do > + echo "100644 $qfwfq $stage qfwfq" > + done | git update-index --index-info && > + git rm qfwfq >msg && > + test_i18ngrep ! "needs merge" msg && Should we capture stderr from "git rm", too, to cover all bases? -Peff