threads / discuss / 59146

Inconsistency between git-log documentation and behavior regarding default date format.

Subject: Inconsistency between git-log documentation and behavior regarding default date format.

## tl;dr

3 messages between Jan 24, 2023 and Feb 1, 2023.

replies: 2people: 3as markdown or json

Rafael Dulfer· Jan 24, 2023, 15:09 UTC · lore

The Git documentation <https://www.git-scm.com/docs/git-log#Documentation/git-log.txt---dateltformatgt> states that if no date format is given (or --date=default is given), the date format is similar to rfc2822 except of a few exceptions, of which those listed are:

   * There is no comma after the day-of-week
   * The time zone is omitted when the local time zone is used

However, if we were to compare the two date formats, you can see another difference:

git log --default  ->  Tue Jan 24 11:03:47 2023 +0100 git log --rfc          ->  Tue, 24 Jan 2023 11:03:47 +0100

With the default, the month and day-of-month are switched around. From my own quick investigation, this behavior occurs because of the statement found at date.c#L266 <https://github.com/git/git/blob/56c8fb1e95377900ec9d53c07886022af0a5d3c2/date.c#L266> wherein the month is inserted before the day-of-month. I am unsure which behavior is exactly intended and whether this discrepancy was known, but it would probably be a good idea to have a note of it in the documentation.

Andrei Rybak· Feb 1, 2023, 01:33 UTC · re: Rafael Dulfer · lore

Re: Inconsistency between git-log documentation and behavior regarding default date format.

On 24/01/2023 16:09, Rafael Dulfer wrote:
Show 11 quoted lines
> The Git documentation 
> <https://www.git-scm.com/docs/git-log#Documentation/git-log.txt---dateltformatgt> states that if no date format is given (or --date=default is given), the date format is similar to rfc2822 except of a few exceptions, of which those listed are:
> 
>    * There is no comma after the day-of-week
>    * The time zone is omitted when the local time zone is used
> 
> However, if we were to compare the two date formats, you can see another 
> difference:
> 
> git log --default  ->  Tue Jan 24 11:03:47 2023 +0100
> git log --rfc          ->  Tue, 24 Jan 2023 11:03:47 +0100

It seems that options in these samples were mistyped. They are missing the "--date=" part:

     $ git log -1 --date=default  master | grep 'Date:'
     Date:   Sat Jan 21 16:35:14 2023 -0800
     $ git log -1 --date=rfc2822   master | grep 'Date:'
     Date:   Sat, 21 Jan 2023 16:35:14 -0800
Show 5 quoted lines
> 
> With the default, the month and day-of-month are switched around. From 
> my own quick investigation, this behavior occurs because of the 
> statement found at date.c#L266 
> <https://github.com/git/git/blob/56c8fb1e95377900ec9d53c07886022af0a5d3c2/date.c#L266> wherein the month is inserted before the day-of-month. I am unsure which behavior is exactly intended and whether this discrepancy was known, but it would probably be a good idea to have a note of it in the documentation.

Indeed, the description of the option (which comes from Documentation/rev-list-options.txt) doesn't describe all differences between --date=default and --date=rfc2822.

A fuller list could be:
     * There is no comma after the day-of-week
     * The time zone is omitted when the local time zone is used
     * Day-of-month and month are switched around
     * Time-of-day and the year are switched around

CC'ing Peff, who wrote the list of exceptions in add00ba2de (date: make "local" orthogonal to date format, 2015-09-03).

Jeff King· Feb 1, 2023, 11:51 UTC · re: Andrei Rybak · lore

Re: Inconsistency between git-log documentation and behavior regarding default date format.

On Wed, Feb 01, 2023 at 02:33:49AM +0100, Andrei Rybak wrote:
Show 13 quoted lines
> Indeed, the description of the option (which comes from
> Documentation/rev-list-options.txt) doesn't describe all differences
> between --date=default and --date=rfc2822.
> 
> A fuller list could be:
> 
>     * There is no comma after the day-of-week
>     * The time zone is omitted when the local time zone is used
>     * Day-of-month and month are switched around
>     * Time-of-day and the year are switched around
> 
> CC'ing Peff, who wrote the list of exceptions in add00ba2de (date: make
> "local" orthogonal to date format, 2015-09-03).

I don't think I had any particular reason to omit those other differences. I probably just didn't notice them. Patches welcome.

-Peff

← back to recent threads