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

* Re: [Bug?] "git commit --amend" always gives author-date to summary?
  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
  0 siblings, 1 reply; 3+ messages in thread
From: Jeff King @ 2016-04-15  2:03 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Thu, Apr 14, 2016 at 02:07:50PM -0700, Junio C Hamano wrote:

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

That's working as I intended it in both cases. The point is to show
extra information whenever we have picked an ident or date that is not
the "normal" one. As you noted later, leaving the old author date is the
normal thing for "--amend", but it's still different from a normal
commit that uses the current user and the current date. So I guess it
depends on how you define normal.

IMHO, we are better off generally erring on the side of printing extra
information. The command is already quite chatty, and we are more likely
to remind somebody that they wanted "--reset-author" than to bother
thing.

> [...]
> 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?

So I don't agree that is a "fix" to change it. But if it bothers you, I
don't mind a knob to suppress it in certain cases.

-Peff

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

* Re: [Bug?] "git commit --amend" always gives author-date to summary?
  2016-04-15  2:03 ` Jeff King
@ 2016-04-15  2:13   ` Junio C Hamano
  0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2016-04-15  2:13 UTC (permalink / raw)
  To: Jeff King; +Cc: git

Jeff King <peff@peff.net> writes:

> That's working as I intended it in both cases. The point is to show
> extra information whenever we have picked an ident or date that is not
> the "normal" one.

OK.

^ 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).