git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Bug?] "git commit --amend" always gives author-date to summary?
@ 2016-04-14 21:07 Junio C Hamano
  2016-04-15  2:03 ` Jeff King
  0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2016-04-14 21:07 UTC (permalink / raw)
  To: Jeff King; +Cc: git

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 <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?

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-04-15  2:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-14 21:07 [Bug?] "git commit --amend" always gives author-date to summary? Junio C Hamano
2016-04-15  2:03 ` Jeff King
2016-04-15  2:13   ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).