git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFD] use approxidate for "git commit --date=xyz"?

From
Jeff King <peff@peff.net>
Date
May 1, 2014, 22:06 UTC
Message-ID
<20140501220639.GD14441@sigill.intra.peff.net>
In-Reply-To
<xmqq1tweec1o.fsf@gitster.dls.corp.google.com>
On Wed, Apr 30, 2014 at 02:34:59PM -0700, Junio C Hamano wrote:
Show 12 quoted lines
> Linus Torvalds <torvalds@linux-foundation.org> writes:
> 
> > I just got a comment saying that
> >
> >     git commit --amend --date=now
> >
> > doesn't work. I replied that you can use
> >
> >    --date="$(date)"
> 
> Offhand without double-checking the actual codepath I do not have
> objection against approxidate-careful.

This has come up a few times on the list, but nobody ever produced a patch. To quote myself[1]:

Show 16 quoted lines
> I think the original rationale was that it's OK for us to allow some
> sloppiness when _viewing_ commits, since you will generally notice the
> problem. But when making commits, it's better to be careful, since you
> may be setting the sha1 in stone.
> 
> These days we have two tools that could help:
> 
>   1. approxidate_careful will do a regular approxidate, but keep track
>   of whether we found anything even remotely useful. That doesn't mean
>   you can't still get unexpected results, but at least some truly
>   useless cases return errors.
> 
>   2. For commits with a different author and committer, we mention the
>   author name in the post-commit summary. We could do the same with a
>   timestamp that was given (i.e., mentioning it in a standard format)
>   to give the user another opportunity to double-check what we parsed.
I think it would make sense if we followed both of those points.

Should we also loosen $GIT_AUTHOR_DATE? I'd prefer not to, as that is not typically fed by the users themselves, but rather by scripts, and being robust there may be more valuable.

Show 5 quoted lines
> But why does the workflow need --date=now in the first place?
> Wouldn't --reset-author do what you want better?  What is the
> situation where you want to say that this patch has been changed
> significantly enough from the original to label it with the current
> timestamp without taking the authorship?

In some of the instances on the list, the user simply didn't know that --reset-author would do the trick. And I do think it's slightly unintuitive.

However, the original rationale for "--date" was to back-date commits[2], so even though there is an equivalent for "--date=now", it might be nice to support "--date=2.days.ago".

-Peff
[1] http://article.gmane.org/gmane.comp.version-control.git/168596
[2] http://article.gmane.org/gmane.comp.version-control.git/134406
Previous: Junio C HamanoNext: Jeff King
Message 3 of 9 in “[RFD] use approxidate for "git commit --date=xyz"?”
  1. Linus TorvaldsApr 30, 2014
  2. Junio C HamanoApr 30, 2014
  3. Jeff KingMay 1, 2014
  4. 0/4 approxidate for "git commit --date=foo"Jeff King, May 2, 2014
  5. 1/4 commit: use split_ident_line to compare author/committerJeff King, May 2, 2014
  6. 2/4 pretty: make show_ident_date publicJeff King, May 2, 2014
  7. 3/4 commit: print "Date" line when the user has set dateJeff King, May 2, 2014
  8. 4/4 commit: accept more date formats for "--date"Jeff King, May 2, 2014
  9. Peter KreftingMay 7, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.