On Thu, Apr 07, 2016 at 12:42:19AM -0400, Jeff King wrote: > On Wed, Apr 06, 2016 at 06:15:03PM +0100, Adam Dinwoodie wrote: > > `git commit --amend -m ''` seems to be an unambiguous request to blank a > > commit message, but it actually leaves the commit message as-is. That's > > the case regardless of whether `--allow-empty-message` is specified, and > > doesn't so much as drop a non-zero return code. > > > > Add failing tests to show this behaviour. > > Hmm. Is it just that we check "message.len", which cannot tell the > difference between "-m was not given" and "-m was given the empty > string"? > > IOW, would this fix it? > > diff --git a/builtin/commit.c b/builtin/commit.c > index 109742e..3cdc44e 100644 > --- a/builtin/commit.c > +++ b/builtin/commit.c > @@ -695,7 +695,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix, > } > } > > - if (message.len) { > + if (have_option_m) { > strbuf_addbuf(&sb, &message); > hook_arg1 = "message"; > } else if (logfile && !strcmp(logfile, "-")) { > > It passes the test suite and your two new tests, but I didn't look too > deeply to see if there are other fallouts. I don't think anybody should > be using it to counteract a previous "-m" or anything like that; we have > "--no-message" for that. That makes sense as a fix to me, but I'm not going to claim to be even slightly familiar with the code here. > PS Is there a previous thread? I see a couple people cc'd, including me, > but I don't remember a previous discussion. Did I just forget it? No previous thread: I noticed the odd behaviour, and figured I'd report it. The best way to report a problem seemed to be providing a test showing the behaviour, and the SubmittingPatches doc said I should CC folk who looked they're involved in the area... Adam -- 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