A simple reproduction. Doing one of these
$ git commit --amend --no-edit
$ echo >MSG frotz; git commit --amend -F MSG
on 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 <[email protected]>
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?
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html