From: Denton Liu <liu.denton@gmail.com>
To: Git Mailing List <git@vger.kernel.org>
Cc: Eric Sunshine <sunshine@sunshineco.com>,
Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v2 00/10] learn the "summary" pretty format
Date: Fri, 8 Nov 2019 12:08:12 -0800 [thread overview]
Message-ID: <cover.1573241590.git.liu.denton@gmail.com> (raw)
In-Reply-To: <cover.1572897736.git.liu.denton@gmail.com>
On this mailing list (and many others) the standard way to reference
other commits with the "summary" format, e.g. "f86a374 ("pack-bitmap.c:
fix a memleak", 2015-03-30)". Since it's so commonly used, let's
standardise it as a pretty format.
Changes since v1:
* Replace more references to "sha1" with "hash"
* Clean up 8/10 by losing the allocation and making the subject less
misleading
* Add tests in 7/10 to ensure 8/10 does not change any behaviour
Denton Liu (10):
SubmittingPatches: use generic terms for hash
pretty-formats.txt: use generic terms for hash
revision: make get_revision_mark() return const pointer
revision: change abbrev_commit_given to abbrev_commit_explicit
pretty.c: inline initalize format_context
pretty.c: extract functionality to repo_format_commit_generic()
t4205: cover `git log --reflog -z` blindspot
reflog-walk.c: move where the newline is added
pretty: implement 'summary' format
SubmittingPatches: use `--pretty=summary`
Documentation/SubmittingPatches | 8 ++-
Documentation/pretty-formats.txt | 25 ++++++---
Documentation/pretty-options.txt | 2 +-
Documentation/rev-list-options.txt | 2 +-
builtin/log.c | 30 ++++++++--
log-tree.c | 15 +++--
pretty.c | 74 ++++++++++++++++++++----
pretty.h | 1 +
reflog-walk.c | 8 ++-
revision.c | 7 ++-
revision.h | 6 +-
t/t4205-log-pretty-formats.sh | 90 ++++++++++++++++++++++++++++++
12 files changed, 227 insertions(+), 41 deletions(-)
Range-diff against v1:
-: ---------- > 1: b34e9aea56 SubmittingPatches: use generic terms for hash
1: dc88d700b8 = 2: 922cc6d849 pretty-formats.txt: use generic terms for hash
2: 9d30c287fa = 3: b31cffd5ef revision: make get_revision_mark() return const pointer
3: 9ea8d676f7 = 4: b970e52b57 revision: change abbrev_commit_given to abbrev_commit_explicit
4: 21809581df = 5: a2e90c78e6 pretty.c: inline initalize format_context
5: 7f3a3b5828 = 6: fd2bbcd169 pretty.c: extract functionality to repo_format_commit_generic()
-: ---------- > 7: b5950823ce t4205: cover `git log --reflog -z` blindspot
6: 004164c781 ! 8: 05dc446d41 reflog-walk.c: don't print last newline with oneline
@@ Metadata
Author: Denton Liu <liu.denton@gmail.com>
## Commit message ##
- reflog-walk.c: don't print last newline with oneline
+ reflog-walk.c: move where the newline is added
In a future commit, we want to possibly be able to continue the reflog message on
the same line without breaking the line. As a result, when
@@ Commit message
Add these missing newlines back in show_log().
+ While we're at it, cuddle the else with the closing brace of the if to
+ more closely match the existing style.
+
Signed-off-by: Denton Liu <liu.denton@gmail.com>
## log-tree.c ##
@@ reflog-walk.c: void show_reflog_message(struct reflog_walk_info *reflog_info, in
get_reflog_selector(&selector, reflog_info, dmode, force_date, 0);
if (oneline) {
- printf("%s: %s", selector.buf, info->message);
-+ struct strbuf message = STRBUF_INIT;
-+ strbuf_addstr(&message, info->message);
-+ strbuf_trim_trailing_newline(&message);
-+ printf("%s: %s", selector.buf, message.buf);
-+ strbuf_release(&message);
- }
- else {
+- }
+- else {
++ int len = strlen(info->message);
++ if (len > 0)
++ len--; /* strip away trailing newline */
++ printf("%s: %.*s", selector.buf, len, info->message);
++ } else {
printf("Reflog: %s (%s)\nReflog message: %s",
+ selector.buf, info->email, info->message);
+ }
7: 1e280b968c ! 9: e74eab6d21 pretty: implement 'summary' format
@@ Commit message
Documentation/SubmittingPatches as
If you want to reference a previous commit in the history of a stable
- branch, use the format "abbreviated sha1 (subject, date)",
+ branch, use the format "abbreviated hash (subject, date)",
with the subject enclosed in a pair of double-quotes, like this:
....
@@ Documentation/pretty-formats.txt: This is designed to be as compact as possible.
+ <abbrev hash> ("<title line>", <short author date>)
++
+This format is useful for referring to other commits when writing a new
-+commit message. Although by default, '<abbrev sha1>' is used, this can
++commit message. Although by default, '<abbrev hash>' is used, this can
+be overridden with '--no-abbrev'. In addition, '<short author date>' can
+be overridden by with '--date='.
+
@@ pretty.h: enum cmit_fmt {
CMIT_FMT_USERFORMAT,
## t/t4205-log-pretty-formats.sh ##
+@@ t/t4205-log-pretty-formats.sh: do
+ '
+ done
+
+-test_expect_success 'NUL termination with --reflog --pretty=oneline' '
+- >expect &&
+- revs="$(git rev-list --reflog)" &&
+- for r in $revs
+- do
+- # trim trailing newline
+- output="$(git show -s --pretty=oneline "$r")" || return 1
+- printf "%s" "$output" >>expect
+- emit_nul >>expect
+- done &&
+- git log -z --pretty=oneline --reflog >actual &&
+- # no trailing NUL
+- test_cmp expect actual
+-'
++for p in oneline summary
++do
++ test_expect_success "NUL termination with --reflog --pretty=$p" '
++ >expect &&
++ revs="$(git rev-list --reflog)" &&
++ for r in $revs
++ do
++ # trim trailing newline
++ output="$(git show -s --pretty='$p' "$r")" || return 1
++ printf "%s" "$output" >>expect
++ emit_nul >>expect
++ done &&
++ git log -z --pretty='$p' --reflog >actual &&
++ # no trailing NUL
++ test_cmp expect actual
++ '
++done
+
+ test_expect_success 'setup more commits' '
+ test_commit "message one" one one message-one &&
@@ t/t4205-log-pretty-formats.sh: test_expect_success '%S in git log --format works with other placeholders (part
test_cmp expect actual
'
8: 80e7c4fc66 = 10: 3aaa7a318b SubmittingPatches: use `--pretty=summary`
--
2.24.0.298.g3e88fbd976
next prev parent reply other threads:[~2019-11-08 20:08 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 ` Denton Liu [this message]
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
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=cover.1573241590.git.liu.denton@gmail.com \
--to=liu.denton@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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).