From: Phillip Wood Date: Tue, 06 Aug 2019 16:32:07 GMT Subject: Re: amend warnings with no changes staged Message-ID: In-Reply-To: On 06/08/2019 04:53, Junio C Hamano wrote: > Junio C Hamano writes: > >> Jonathan Nieder writes: >> >>>>> Some non-judgemental descriptive output like >>>>> >>>>> $ git commit --amend --no-edit >>>>> No changes. >>>>> $ >>>>> >>>>> would address this case, without bothering people who are doing it >>>>> intentionally. So I think there's room for a simple improvement here. >>>> >>>> I do that to refresh the committer timestamp. >>> >>> I do, too. The proposal is, paraphrasing, >>> >>> $ git commit --amend --no-edit >>> Ah, I see that you want me to refresh the committer timestamp. >>> Done, as requested. >>> $ >> >> Ah, OK then. I somehow misread "No changes." as an error message. > > Well, on second thought, I think "fatal: no changes" that exits with > non-zero, with "--force" as an escape hatch for those who want to > refresh the committer timestamp, would probably be more in line with > the expectation Lukas had when this thread was started, and I further > suspect that it might be a bit more end-user friendly. I agree that this would be the must user friendly way of doing it. I think refreshing the timestamp is probably a niche use of '--amend' (out of interest what the the motivation for doing that?) although it does seem to popular with the other contributors to this thread. We could always have a transition period with an opt-in config variable. I find the current behavior quite annoying when I've forgotten to stage anything as there is no indication the the commit's content is unchanged. I've been using a wrapper script that errors out if there are no new changes staged with --amend --no-edit and found it very helpful (as is a proper --reword option rather than having to give --amend --only) Best Wishes Phillip > > It is a backward incompatible behaviour, but I suspect that if I > were inventing "commit --amend" today, unlike 8588452c ("git-commit > --amend: allow empty commit.", 2006-03-04), I probably would design > it that way. After all, failing and stopping is always a safer > option than going ahead with or without a report. > > I am not sure which one between "go ahead anyway but report" and > "fail by default but allow forcing" I would prefer more. At least > not yet. But I won't rule the latter out at this point. > > Thanks. >