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