[Bug?] "git commit --amend" always gives author-date to summary?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
     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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]