Bug: commit -p breaks with -m

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Bug: commit -p breaks with -m

From: Matan Nassau <hidden>
Date: 2016-06-15 22:58:25

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?

Re: Bug: commit -p breaks with -m

From: Jeff King <hidden>
Date: 2016-06-15 22:58:25

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help