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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html