On Tue, Jan 10, 2012 at 6:28 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > It is a non-starter to unconditionally start an editor. I really wonder. Because not being default will always lead to really odd ways of saying "it should have been default, so we'll make up these complex and arbitrary special rules" (like the ones you were starting to outline). So I really suspect it would be easier and more straightforward to instead just bite the bullet, and say: (a) start an editor by default if both stdin/stdout matched in fstat and were istty(). (b) have some trivial way to disable that default behavior for people who really want the legacy behavior. And by "trivial" I mean "set the GIT_LEGACY_MERGE environment variable" or something. (c) have a "--no-editor" command line switch so that scripts and/or users that want to make it explicit (rather than rely on the hacky legacy workaround) can do so (and a explicit "--editor" switch to enable people to use a GUI editor even if they aren't on a terminal - think something IDE environment, whatever). Where (a) is so that people will always get the editor if they aren't aware of it, and (b) is so that existing scripting environments can then *trivially* work around the fact that we changed semantics, including on a site-wide basis. With (c) being for future users. Of course, just a "git merge < /dev/null" would also do it, but sounds ridiculously hacky (and doesn't allow the "--editor" version), so that "--no-editor" flag sounds saner and much more powerful. Of course, if you use "-m", no editor would fire up anyway, exactly like with "git commit", so that's one way to avoid the issue forever (and be backwards compatible). But if you actually *want* to get the auto-generated message and no editor, that would need that new switch. Yes, git has been very good about not breaking semantics. But it's happened before too when it needed to happen. We've had much bigger breaks (like the whole "git-xyz" to "git xyz" transition, for example, which broke a lot of scripts). Linus -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html