git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
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


  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).