several date related issues
Running 2.4.4 *** Dates do not respect LC_TIME $ date Thu 25 Jun 2015 13:02:48 CEST $ git log --pretty=fuller --date=local | head -6 | grep -i date AuthorDate: Mon Feb 16 16:47:08 2015 CommitDate: Mon Feb 16 16:47:08 2015 $ locale -ck LC_TIME | grep fmt d_t_fmt=%a %d %b %Y %r %Z d_fmt=%d-%m-%Y t_fmt=%r t_fmt_ampm=%H:%M:%S era_d_fmt= era_d_t_fmt= era_t_fmt= date_fmt=%a %e %b %Y %H:%M:%S %Z *** git log --date-order and --author-date-order do not order by date $ mkdir git-test $ cd git-test $ git init Initialized empty Git repository in /home/merijn/git-test/.git/ $ touch foo $ git add foo $ git commit -m boo [master (root-commit) 09483e5] boo 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo $ git log | cat commit 09483e527d6a4d4a9e49f82a11871ab55133cf72 Author: H.Merijn Brand h.m.br...@xs4all.nl Date: Thu Jun 25 13:14:37 2015 +0200 boo $ touch bar $ env GIT_AUTHOR_DATE=2015-01-15 12:13:14 GIT_COMMITTER_DATE=2015-01-15 12:13:14 git add bar $ env GIT_AUTHOR_DATE=2015-01-15 12:13:14 GIT_COMMITTER_DATE=2015-01-15 12:13:14 git commit -m Commit in past [master 6acc7f3] Commit in past 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bar $ git log | cat commit 6acc7f3d2cbaca7176b63ffac51005ce07b90b91 Author: H.Merijn Brand h.m.br...@xs4all.nl Date: Thu Jan 15 12:13:14 2015 +0100 Commit in past commit 09483e527d6a4d4a9e49f82a11871ab55133cf72 Author: H.Merijn Brand h.m.br...@xs4all.nl Date: Thu Jun 25 13:14:37 2015 +0200 boo $ git log --date-order | cat commit 6acc7f3d2cbaca7176b63ffac51005ce07b90b91 Author: H.Merijn Brand h.m.br...@xs4all.nl Date: Thu Jan 15 12:13:14 2015 +0100 Commit in past commit 09483e527d6a4d4a9e49f82a11871ab55133cf72 Author: H.Merijn Brand h.m.br...@xs4all.nl Date: Thu Jun 25 13:14:37 2015 +0200 boo $ git log --author-date-order | cat commit 6acc7f3d2cbaca7176b63ffac51005ce07b90b91 Author: H.Merijn Brand h.m.br...@xs4all.nl Date: Thu Jan 15 12:13:14 2015 +0100 Commit in past commit 09483e527d6a4d4a9e49f82a11871ab55133cf72 Author: H.Merijn Brand h.m.br...@xs4all.nl Date: Thu Jun 25 13:14:37 2015 +0200 boo $ -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.21 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/ pgp3fItiz4OQ5.pgp Description: OpenPGP digital signature
Re: several date related issues
On Thu, Jun 25, 2015 at 01:19:01PM +0200, H.Merijn Brand wrote: *** Dates do not respect LC_TIME Right, we use our own routines for formatting the dates, and not strftime. And it probably should stay that way in general, as git's output is often meant to be parsed. That being said, I do not think it would be wrong to have a date-mode that just showed strftime(%c), or some other arbitrary strftime string. You could then set log.date as appropriate for human consumption. *** git log --date-order and --author-date-order do not order by date Correct. The documentation says: --date-order Show no parents before all of its children are shown, but otherwise show commits in the commit timestamp order. In your example, one commit is the parent of the other, so it hits the first part of the sentence, and the dates are never even compared. There is not a simple way to show commits in arbitrary order without respect to parentage. I think you'd have to do something like: git log --format='%at %H' | sort -rn | cut -d' ' -f2 | git log --stdin --no-walk -Peff -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: several date related issues
On Thu, 25 Jun 2015 08:44:45 -0400, Jeff King p...@peff.net wrote: On Thu, Jun 25, 2015 at 01:19:01PM +0200, H.Merijn Brand wrote: *** Dates do not respect LC_TIME Right, we use our own routines for formatting the dates, and not strftime. And it probably should stay that way in general, as git's output is often meant to be parsed. That being said, I do not think it would be wrong to have a date-mode that just showed strftime(%c), or some other arbitrary strftime string. You could then set log.date as appropriate for human consumption. Yes please :) --date=lc --date=lc_time --date=locale all spring to mind as valid options *** git log --date-order and --author-date-order do not order by date Correct. The documentation says: --date-order Show no parents before all of its children are shown, but otherwise show commits in the commit timestamp order. In your example, one commit is the parent of the other, so it hits the first part of the sentence, and the dates are never even compared. That is what I gathered, and concluded that the option name is misleading There is not a simple way to show commits in arbitrary order without respect to parentage. I think you'd have to do something like: git log --format='%at %H' | sort -rn | cut -d' ' -f2 | git log --stdin --no-walk I'd like that as gitk option! -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.21 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/ pgpecr4JREYxS.pgp Description: OpenPGP digital signature