A simple reproduction. Doing one of these
$ git commit --amend --no-edit
$ echo >MSG frotz; git commit --amend -F MSGon any commit, whether it is your own commit or somebody else's, seems to always show the "Date:" of the original commit, e.g.
$ git checkout v2.8.0^0
$ git commit --amend --no-edit
[detached HEAD a6f2a14] Git 2.8
Date: Mon Mar 28 12:19:45 2016 -0700
3 files changed, 14 insertions(+), 9 deletions(-)
$ git checkout v2.8.0^^2
$ git commit --amend --no-edit
[detached HEAD df9f57e] Documentation: fix git-p4 AsciiDoc formatting
Author: Lars Schneider <larsxschneider@gmail.com>
Date: Wed Mar 23 11:59:01 2016 +0100
1 file changed, 3 insertions(+), 5 deletions(-)I can understand the latter, but I am not sure if it makes sense to do the former. The output is coming from b7242b8c (commit: print "Date" line when the user has set date, 2014-05-01), whose objective I can agree with, but does not seem to match the use case.
commit: print "Date" line when the user has set date
When we make a commit and the author is not the same as the
committer (e.g., because you used "-c $commit" or
"--author=$somebody"), we print the author's name and email
in both the commit-message template and as part of the
commit summary. This is a safety check to give the user a
chance to confirm that we are doing what they expect.
This patch brings the same safety for the "date" field,
which may be set by "-c" or by using "--date". Note that we
explicitly do not set it for $GIT_AUTHOR_DATE, as it is
probably not of interest when "git commit" is being fed its
parameters by a script.When doing "--amend", not updating the author-date is the norm. Also, I think the output is meant to accompany with the reminder to say "You are committing somebody else's change", but in the first case of amending v2.8.0^0, "the author is not the same as the committer" does not apply, either.
The commit in question, b7242b8c, brings in a test for amend to
7501, like this:
test_expect_success 'commit mentions forced date in output' '
git commit --amend --date=2010-01-02T03:04:05 >output &&
grep "Date: *Sat Jan 2 03:04:05 2010" output
'But if I change it like this:
test_expect_success 'amend always mentions date in output' '
git commit --amend >output &&
grep "Date: " output
'the test still passes.
I suspect that there are people who are already depending on this behaviour, so it may not be worth fixing, but I found it somewhat irritating (especially after wasting about an hour or so doing wild goose chase trying to find a stray invocation of "date" somewhere in my script that eventually uses "git commit --amend").
Thoughts?