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

Re: [PATCH] [GSOC] pretty: provide human date format

From
ZheNing Hu <adlternative@gmail.com>
Date
Apr 24, 2021, 13:33 UTC
Message-ID
<CAOLTT8SJW7+9Mxa7baTj+dSjkOyYQKNhWJbBdQAHKRp49j1yZA@mail.gmail.com>
In-Reply-To
<c6b43262-7ce4-b32e-3ff4-9edb66f2a20b@iee.email>
Philip Oakley <philipoakley@iee.email> 于2021年4月24日周六 上午5:10写道:
Show 42 quoted lines
>
> On 23/04/2021 17:27, ZheNing Hu via GitGitGadget wrote:
> > From: ZheNing Hu <adlternative@gmail.com>
> >
> > Add the placeholders %ah and %ch to format author date and committer
> > date, like --date=human does, which provides more humanity date output.
> >
> > Signed-off-by: ZheNing Hu <adlternative@gmail.com>
> > ---
> >     [GSOC] pretty: provide human date format
> >
> >     Reasons for making this patch: --date=human has no corresponding
> >     --pretty option.
> >
> >     Although --date=human with --pretty="%(a|c)d" can achieve the same
> >     effect with --pretty="%(a|c)h", but it can be noticed that most time
> >     formats implement the corresponding option of --pretty, such as
> >     --date=iso8601 can be replaced by --pretty=%(a|c)i, so add
> >     "--pretty=%(a|c)h" seems to be a very reasonable thing.
> >
> > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-939%2Fadlternative%2Fpretty_human-v1
> > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-939/adlternative/pretty_human-v1
> > Pull-Request: https://github.com/gitgitgadget/git/pull/939
> >
> >  Documentation/pretty-formats.txt | 2 ++
> >  pretty.c                         | 3 +++
> >  t/t4205-log-pretty-formats.sh    | 6 ++++++
> >  3 files changed, 11 insertions(+)
> >
> > diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
> > index 45133066e412..9cdcdb8bb414 100644
> > --- a/Documentation/pretty-formats.txt
> > +++ b/Documentation/pretty-formats.txt
> > @@ -190,6 +190,7 @@ The placeholders are:
> >  '%ai':: author date, ISO 8601-like format
> >  '%aI':: author date, strict ISO 8601 format
> >  '%as':: author date, short format (`YYYY-MM-DD`)
> > +'%ah':: author date, human style
>
> An example may be useful. There's no other mention of human date style
> in the pretty-formats doc. Or a link to the definitive man page.
>

Thanks for the suggestion. Note that the explanation here is relatively small, and human style has many different situations, so I may just go to link it to `rev-list-option.txt`, This is more convenient than showing multiple situations' examples.

Show 47 quoted lines
> >  '%cn':: committer name
> >  '%cN':: committer name (respecting .mailmap, see
> >       linkgit:git-shortlog[1] or linkgit:git-blame[1])
> > @@ -206,6 +207,7 @@ The placeholders are:
> >  '%ci':: committer date, ISO 8601-like format
> >  '%cI':: committer date, strict ISO 8601 format
> >  '%cs':: committer date, short format (`YYYY-MM-DD`)
> > +'%ch':: committer date, human style
> Likewise, an `(e.g. ????)` to unconfuse readers.
> >  '%d':: ref names, like the --decorate option of linkgit:git-log[1]
> >  '%D':: ref names without the " (", ")" wrapping.
> >  '%(describe[:options])':: human-readable name, like
> > diff --git a/pretty.c b/pretty.c
> > index e5b33ba034bd..b1ecd039cef2 100644
> > --- a/pretty.c
> > +++ b/pretty.c
> > @@ -745,6 +745,9 @@ static size_t format_person_part(struct strbuf *sb, char part,
> >       case 'I':       /* date, ISO 8601 strict */
> >               strbuf_addstr(sb, show_ident_date(&s, DATE_MODE(ISO8601_STRICT)));
> >               return placeholder_len;
> > +     case 'h':       /* date, human */
> > +             strbuf_addstr(sb, show_ident_date(&s, DATE_MODE(HUMAN)));
> > +             return placeholder_len;
> >       case 's':
> >               strbuf_addstr(sb, show_ident_date(&s, DATE_MODE(SHORT)));
> >               return placeholder_len;
> > diff --git a/t/t4205-log-pretty-formats.sh b/t/t4205-log-pretty-formats.sh
> > index cabdf7d57a00..d4d75b0b350e 100755
> > --- a/t/t4205-log-pretty-formats.sh
> > +++ b/t/t4205-log-pretty-formats.sh
> > @@ -539,6 +539,12 @@ test_expect_success 'short date' '
> >       test_cmp expected actual
> >  '
> >
> > +test_expect_success 'human date' '
> > +     git log --format=%ad%n%cd --date=human >expected &&
> > +     git log --format=%ah%n%ch >actual &&
> > +     test_cmp expected actual
> > +'
> > +
> >  # get new digests (with no abbreviations)
> >  test_expect_success 'set up log decoration tests' '
> >       head1=$(git rev-parse --verify HEAD~0) &&
> >
> > base-commit: b0c09ab8796fb736efa432b8e817334f3e5ee75a
> --
> Philip

Thanks! -- ZheNing Hu

Previous: Philip OakleyNext: ZheNing Hu via GitGitGadget
Message 5 of 15 in “[GSOC] pretty: provide human date format”
  1. [GSOC] pretty: provide human date formatZheNing Hu via GitGitGadget, Apr 23, 2021
  2. Taylor BlauApr 23, 2021
  3. ZheNing HuApr 24, 2021
  4. Philip OakleyApr 23, 2021
  5. ZheNing HuApr 24, 2021
  6. [GSOC] pretty: provide human date formatZheNing Hu via GitGitGadget, Apr 24, 2021
  7. Philip OakleyApr 24, 2021
  8. 0/2 pretty tests: --date/format test improvementsÆvar Arnfjörð Bjarmason, Apr 25, 2021
  9. 1/2 pretty tests: simplify %aI/%cI date format testÆvar Arnfjörð Bjarmason, Apr 25, 2021
  10. Beat BolliApr 26, 2021
  11. Junio C HamanoApr 27, 2021
  12. 2/2 pretty tests: give --date/format tests a better descriptionÆvar Arnfjörð Bjarmason, Apr 25, 2021
  13. ZheNing HuApr 25, 2021
  14. [GSOC] pretty: provide human date formatZheNing Hu via GitGitGadget, Apr 25, 2021
  15. [GSOC] pretty: provide human date formatZheNing Hu via GitGitGadget, May 3, 2021

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.