From: "René Scharfe" <l.s.r@web.de>
To: Denton Liu <liu.denton@gmail.com>,
Git Mailing List <git@vger.kernel.org>
Cc: Eric Sunshine <sunshine@sunshineco.com>,
Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v2 09/10] pretty: implement 'summary' format
Date: Sat, 9 Nov 2019 07:38:13 +0100 [thread overview]
Message-ID: <08afdbcd-5972-05f9-ec8c-b12bd29d9030@web.de> (raw)
In-Reply-To: <e74eab6d21f655698ef8b6e1286b44ea070a7af7.1573241590.git.liu.denton@gmail.com>
Am 08.11.19 um 21:08 schrieb Denton Liu:
> The standard format for referencing other commits within some projects
> (such as git.git) is the summary format. This is described in
> Documentation/SubmittingPatches as
>
> If you want to reference a previous commit in the history of a stable
> branch, use the format "abbreviated hash (subject, date)",
> with the subject enclosed in a pair of double-quotes, like this:
>
> ....
> Commit f86a374 ("pack-bitmap.c: fix a memleak", 2015-03-30)
> noticed that ...
> ....
>
> Since this format is so commonly used, standardize it as a pretty
> format.
>
> This format is implemented as a separate flow that skips most of
> pretty_print_commit() and instead calls format_commit_summary(). The
> reason why this is done is because the other pretty formats expect
> output to be generated in a specific order. Specifically, the header,
> including the date, is always printed before the commit message,
> including the subject. Reversing the order would be possible but would
> involve butchering pretty_print_commit() so it is implemented as a
> separate flow.
>
> Signed-off-by: Denton Liu <liu.denton@gmail.com>
> ---
> Documentation/pretty-formats.txt | 9 ++++
> Documentation/pretty-options.txt | 2 +-
> Documentation/rev-list-options.txt | 2 +-
> builtin/log.c | 30 +++++++++--
> log-tree.c | 11 ++--
> pretty.c | 31 ++++++++++-
> pretty.h | 1 +
> t/t4205-log-pretty-formats.sh | 83 +++++++++++++++++++++++++-----
> 8 files changed, 144 insertions(+), 25 deletions(-)
Hmm, that's quite a lot of code to add to the formatting code with its
repeated special-case checks. Why not implement it as a built-in user
format, like making it an alias for something like this?
git log --format='%C(auto)%h ("%s", %as)'
We don't have %as, yet, but making --date=short available as a
placeholder would be a good idea anyway (patch below).
-- >8 --
Subject: [PATCH] pretty: provide short date format
Add the placeholders %as and %cs to format author date and committer
date, respectively, without the time part, like --date=short does, i.e.
like YYYY-MM-DD.
Signed-off-by: René Scharfe <l.s.r@web.de>
---
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 b87e2e83e6..f80eaab439 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt
@@ -169,6 +169,7 @@ The placeholders are:
'%at':: author date, UNIX timestamp
'%ai':: author date, ISO 8601-like format
'%aI':: author date, strict ISO 8601 format
+'%as':: author date, short format (`YYYY-MM-DD`)
'%cn':: committer name
'%cN':: committer name (respecting .mailmap, see
linkgit:git-shortlog[1] or linkgit:git-blame[1])
@@ -181,6 +182,7 @@ The placeholders are:
'%ct':: committer date, UNIX timestamp
'%ci':: committer date, ISO 8601-like format
'%cI':: committer date, strict ISO 8601 format
+'%cs':: committer date, short format (`YYYY-MM-DD`)
'%d':: ref names, like the --decorate option of linkgit:git-log[1]
'%D':: ref names without the " (", ")" wrapping.
'%S':: ref name given on the command line by which the commit was reached
diff --git a/pretty.c b/pretty.c
index b32f036953..76920c91dd 100644
--- a/pretty.c
+++ b/pretty.c
@@ -731,6 +731,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 's':
+ strbuf_addstr(sb, show_ident_date(&s, DATE_MODE(SHORT)));
+ return placeholder_len;
}
skip:
diff --git a/t/t4205-log-pretty-formats.sh b/t/t4205-log-pretty-formats.sh
index f42a69faa2..4980ed4c6f 100755
--- a/t/t4205-log-pretty-formats.sh
+++ b/t/t4205-log-pretty-formats.sh
@@ -503,6 +503,12 @@ test_expect_success 'ISO and ISO-strict date formats display the same values' '
test_cmp expected actual
'
+test_expect_success 'short date' '
+ git log --format=%ad%n%cd --date=short >expected &&
+ git log --format=%as%n%cs >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) &&
--
2.24.0
next prev parent reply other threads:[~2019-11-09 6:38 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-04 20:03 [PATCH 0/8] learn the "summary" pretty format Denton Liu
2019-11-04 20:03 ` [PATCH 1/8] pretty-formats.txt: use generic terms for hash Denton Liu
2019-11-04 20:03 ` [PATCH 2/8] revision: make get_revision_mark() return const pointer Denton Liu
2019-11-04 20:03 ` [PATCH 3/8] revision: change abbrev_commit_given to abbrev_commit_explicit Denton Liu
2019-11-04 20:03 ` [PATCH 4/8] pretty.c: inline initalize format_context Denton Liu
2019-11-04 20:03 ` [PATCH 5/8] pretty.c: extract functionality to repo_format_commit_generic() Denton Liu
2019-11-04 20:04 ` [PATCH 6/8] reflog-walk.c: don't print last newline with oneline Denton Liu
2019-11-06 5:12 ` Junio C Hamano
2019-11-08 8:50 ` Denton Liu
2019-11-04 20:04 ` [PATCH 7/8] pretty: implement 'summary' format Denton Liu
2019-11-04 20:16 ` Eric Sunshine
2019-11-04 20:35 ` Denton Liu
2019-11-04 20:38 ` Eric Sunshine
2019-11-04 20:45 ` Denton Liu
2019-11-04 20:04 ` [PATCH 8/8] SubmittingPatches: use `--pretty=summary` Denton Liu
2019-11-08 20:08 ` [PATCH v2 00/10] learn the "summary" pretty format Denton Liu
2019-11-08 20:08 ` [PATCH v2 01/10] SubmittingPatches: use generic terms for hash Denton Liu
2019-11-08 20:08 ` [PATCH v2 02/10] pretty-formats.txt: " Denton Liu
2019-11-08 20:08 ` [PATCH v2 03/10] revision: make get_revision_mark() return const pointer Denton Liu
2019-11-08 20:08 ` [PATCH v2 04/10] revision: change abbrev_commit_given to abbrev_commit_explicit Denton Liu
2019-11-08 20:08 ` [PATCH v2 05/10] pretty.c: inline initalize format_context Denton Liu
2019-11-08 20:08 ` [PATCH v2 06/10] pretty.c: extract functionality to repo_format_commit_generic() Denton Liu
2019-11-08 20:08 ` [PATCH v2 07/10] t4205: cover `git log --reflog -z` blindspot Denton Liu
2019-11-08 20:36 ` Eric Sunshine
2019-11-08 21:47 ` Denton Liu
2019-11-08 21:58 ` Eric Sunshine
2019-11-08 20:08 ` [PATCH v2 08/10] reflog-walk.c: move where the newline is added Denton Liu
2019-11-08 20:08 ` [PATCH v2 09/10] pretty: implement 'summary' format Denton Liu
2019-11-08 20:46 ` Eric Sunshine
2019-11-09 6:38 ` René Scharfe [this message]
2019-11-10 6:25 ` Junio C Hamano
2019-11-11 23:47 ` Denton Liu
2019-11-14 0:37 ` SZEDER Gábor
2019-11-14 2:44 ` Junio C Hamano
2019-11-09 6:38 ` René Scharfe
2019-11-14 1:10 ` SZEDER Gábor
2019-11-08 20:08 ` [PATCH v2 10/10] SubmittingPatches: use `--pretty=summary` Denton Liu
2019-11-14 20:47 ` [PATCH v3 00/10] learn the "reference" pretty format Denton Liu
2019-11-14 20:47 ` [PATCH v3 01/10] SubmittingPatches: use generic terms for hash Denton Liu
2019-11-14 20:47 ` [PATCH v3 02/10] pretty-formats.txt: " Denton Liu
2019-11-14 20:47 ` [PATCH v3 03/10] SubmittingPatches: remove dq from commit reference Denton Liu
2019-11-14 20:47 ` [PATCH v3 04/10] completion: complete `tformat:` pretty format Denton Liu
2019-11-14 20:47 ` [PATCH v3 05/10] revision: make get_revision_mark() return const pointer Denton Liu
2019-11-14 20:47 ` [PATCH v3 06/10] pretty.c: inline initalize format_context Denton Liu
2019-11-14 20:47 ` [PATCH v3 07/10] t4205: cover `git log --reflog -z` blindspot Denton Liu
2019-11-14 20:47 ` [PATCH v3 08/10] pretty: provide short date format Denton Liu
2019-11-14 20:47 ` [PATCH v3 09/10] pretty: implement 'reference' format Denton Liu
2019-11-15 3:33 ` Todd Zullinger
2019-11-15 6:07 ` Junio C Hamano
2019-11-15 13:18 ` SZEDER Gábor
2019-11-16 1:46 ` Junio C Hamano
2019-11-18 1:44 ` Junio C Hamano
2019-11-18 1:42 ` Junio C Hamano
2019-11-15 8:07 ` Eric Sunshine
2019-11-14 20:47 ` [PATCH v3 10/10] SubmittingPatches: use `--pretty=reference` Denton Liu
2019-11-19 0:21 ` [PATCH v4 00/11] learn the "reference" pretty format Denton Liu
2019-11-19 0:21 ` [PATCH v4 01/11] SubmittingPatches: use generic terms for hash Denton Liu
2019-11-19 0:21 ` [PATCH v4 02/11] pretty-formats.txt: " Denton Liu
2019-11-19 0:21 ` [PATCH v4 03/11] SubmittingPatches: remove dq from commit reference Denton Liu
2019-11-19 0:21 ` [PATCH v4 04/11] completion: complete `tformat:` pretty format Denton Liu
2019-11-19 0:21 ` [PATCH v4 05/11] revision: make get_revision_mark() return const pointer Denton Liu
2019-11-19 0:21 ` [PATCH v4 06/11] pretty.c: inline initalize format_context Denton Liu
2019-11-19 0:21 ` [PATCH v4 07/11] t4205: cover `git log --reflog -z` blindspot Denton Liu
2019-11-19 0:21 ` [PATCH v4 08/11] pretty: provide short date format Denton Liu
2019-11-19 0:21 ` [PATCH v4 09/11] pretty: implement 'reference' format Denton Liu
2019-11-19 0:21 ` [PATCH v4 10/11] SubmittingPatches: use `--pretty=reference` Denton Liu
2019-11-19 0:21 ` [PATCH v4 11/11] squash! pretty: implement 'reference' format Denton Liu
2019-11-19 3:10 ` Junio C Hamano
2019-11-20 0:51 ` [PATCH v5 00/11] learn the "reference" pretty format Denton Liu
2019-11-20 0:51 ` [PATCH v5 01/11] SubmittingPatches: use generic terms for hash Denton Liu
2019-11-20 0:51 ` [PATCH v5 02/11] pretty-formats.txt: " Denton Liu
2019-11-20 0:51 ` [PATCH v5 03/11] SubmittingPatches: remove dq from commit reference Denton Liu
2019-11-20 0:51 ` [PATCH v5 04/11] completion: complete `tformat:` pretty format Denton Liu
2019-11-20 0:51 ` [PATCH v5 05/11] revision: make get_revision_mark() return const pointer Denton Liu
2019-11-20 0:51 ` [PATCH v5 06/11] pretty.c: inline initalize format_context Denton Liu
2019-11-20 0:51 ` [PATCH v5 07/11] t4205: cover `git log --reflog -z` blindspot Denton Liu
2019-11-20 0:51 ` [PATCH v5 08/11] pretty: provide short date format Denton Liu
2019-11-20 0:51 ` [PATCH v5 09/11] pretty: add struct cmt_fmt_map::default_date_mode_type Denton Liu
2019-11-20 3:15 ` Junio C Hamano
2019-11-20 0:51 ` [PATCH v5 10/11] pretty: implement 'reference' format Denton Liu
2019-11-20 0:51 ` [PATCH v5 11/11] SubmittingPatches: use `--pretty=reference` Denton Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=08afdbcd-5972-05f9-ec8c-b12bd29d9030@web.de \
--to=l.s.r@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=liu.denton@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).