On 06/08/2019 04:53, Junio C Hamano wrote:
Junio C Hamano <gitster@xxxxxxxxx> writes:
Jonathan Nieder <jrnieder@xxxxxxxxx> 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.