On Thu, Aug 15, 2013 at 12:43:39AM -0400, Matan Nassau wrote: > With git 1.8.3.3, > > $ seq 5 >data > $ git add data > $ git commit -mdata > $ sed -i '2 d' data > $ git commit -pmchange > > At the prompt, type e to edit the hunk. The editor doesn't start, but > git records a commit. > > I found that builtin/commit.c sets the GIT_EDITOR env var to ":" when > the user specifies the -m option. This was done in 406400ce4f69. > Removing these two lines, > > if (!use_editor) > setenv("GIT_EDITOR", ":", 1); > > seems to fix the issue, but I'm not sure this won't break the > prepare-commit-msg hook. I'd like to submit a patch: can I get a hint > if this change would break commit hooks or anything else I'm not > seeing? Yeah, that is definitely a bug. Just removing those lines would not be the right fix, though, because the point of them is to let the prepare-commit-msg hook know whether or not an editor is in use. Instead, I think you would want to limit the scope of where we have set GIT_EDITOR. I.e., drop those lines, and then add GIT_EDITOR=: to the environment that we pass to the hook via the run_hook function. Unfortunately, I think that will require some refactoring of the run_hook interface, which does not allow arbitrary environment parameters to be set. -Peff -- 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