threads / bug / 46518

bug: git stash list --format='%gd' --date=format:'…'

Subject: bug: git stash list --format='%gd' --date=format:'…'

## tl;dr

One message between Aug 5, 2017 and Aug 5, 2017.

replies: 0people: 1as markdown or json

Stephen Talley· Aug 5, 2017, 19:05 UTC · lore
Synopsis:
When expanding '%gd' placeholder (reflog selector), git substitutes user-specified --date format, which mangles the reflog.
Description:
I was writing a script that expects a stash reflog and a date on stdin:
    % git stash list --format='%gd%n%ad'
    stash@{0}
    Sat Aug 5 13:26:30 2017 -0400
    stash@{1}
    Sat Aug 5 13:18:54 2017 -0400
    …
Since this date is going to be presented to the user, I wanted to apply my own date format:
    % git stash list --format='%gd%n%ad' --date=format:%Y/%m/%d
    stash@{2017/08/05}
    2017/08/05
    stash@{2017/08/05}
    2017/08/05
    …
Unfortunately this mangles the reflog as well (e.g. "stash@{2017/08/05}"), making it useless when passed back to git.
Apparently stashes can be referenced by date, which is fine I suppose.  But those dates should never be subject to user-defined formatting via --date=format:….
I'd expect the above command to instead output:
    % git stash list --format='%gd%n%ad' --date=format:%Y/%m/%d
    stash@{0}
    2017/08/05
    stash@{1}
    2017/08/05
    …
or at least always use the ISO date format:
    % git stash list --format='%gd%n%ad'
    stash@{2017-08-05 13:26:30 -0400}
    2017-08-05 13:26:30 -0400
    stash@{2017-08-05 13:18:54 -0400}
    2017-08-05 13:18:54 -0400
    …
Steve

← back to recent threads