From: Denton Liu <liu.denton@gmail.com>
To: Git Mailing List <git@vger.kernel.org>
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Johannes Sixt" <j6t@kdbg.org>,
"Philip Oakley" <philipoakley@iee.email>
Subject: [PATCH v6 0/3] format-patch: learn --infer-cover-subject option (also t4014 cleanup)
Date: Tue, 15 Oct 2019 02:06:31 -0700 [thread overview]
Message-ID: <cover.1571130298.git.liu.denton@gmail.com> (raw)
In-Reply-To: <cover.1558492582.git.liu.denton@gmail.com>
Currently, format-patch only puts "*** SUBJECT HERE ***" when a cover
letter is generated. However, it is already smart enough to be able to
populate the cover letter with the branch description so there's no
reason why it cannot populate the subject as well.
Teach format-patch the `--infer-cover-subject` option and corresponding
`format.inferCoverSubject` configuration option which will read the
subject from the branch description using the same rules as for a commit
message (that is, it will expect a subject line followed by a blank
line).
This was based on patches 1-3 of an earlier patchset I sent[1].
Changes since v5:
* Remove speculation in log message of 1/3
* Rename pp_from_desc() to prepare_cover_text()
Changes since v4:
* Modify 1/3 to more closely reflect intent of the original author
* Incorporate Junio's suggestions into the documentation
* Extract branch desc logic into pp_from_desc()
* Fix broken tests
Changes since v3:
* Change --infer-cover-subject to --cover-from-description
* No more test cleanup patches (they were merged in
'dl/format-patch-doc-test-cleanup')
Changes since v2:
* Break 1/4 into many different patches (one per paragraph of the
original patch)
* Incorporate Eric's documentation/commit message suggestions
Changes since v1:
* Incorporate Eric's suggestions for cleanup in all patches
* Add patch 3/4 to make it clear what is the default value for
format.coverLetter (since format.inferCoverSubject was borrowed from
this config but it also did not state what the default value was)
* In 1/4, rename all instances of "expected" to "expect"
[1]: https://public-inbox.org/git/cover.1558492582.git.liu.denton@gmail.com/
Denton Liu (3):
format-patch: replace erroneous and condition
format-patch: use enum variables
format-patch: teach --cover-from-description option
Documentation/config/format.txt | 6 +
Documentation/git-format-patch.txt | 22 ++++
builtin/log.c | 125 +++++++++++++++------
t/t4014-format-patch.sh | 172 +++++++++++++++++++++++++++++
t/t9902-completion.sh | 5 +-
5 files changed, 296 insertions(+), 34 deletions(-)
Range-diff against v5:
1: f89e56545b ! 1: 9d41068e73 format-patch: change erroneous and condition
@@ Metadata
Author: Denton Liu <liu.denton@gmail.com>
## Commit message ##
- format-patch: change erroneous and condition
+ format-patch: replace erroneous and condition
Commit 30984ed2e9 (format-patch: support deep threading, 2009-02-19),
introduced the following lines:
@@ Commit message
thread = git_config_bool(var, value) && THREAD_SHALLOW;
Since git_config_bool() returns a bool, the trailing `&& THREAD_SHALLOW`
- is a no-op.
-
- In Python, `x and y` is equivalent to `y if x else x`[1]. Since this
- seems to be a Python-ism that's mistakenly leaked into our code, convert
- this to the equivalent C expression.
-
- [1]: https://docs.python.org/3/reference/expressions.html#boolean-operations
-
- Signed-off-by: Denton Liu <liu.denton@gmail.com>
- Signed-off-by: Junio C Hamano <gitster@pobox.com>
+ is a no-op. Replace this errorneous and condition with a ternary
+ statement so that it is clear what the configured value is when a
+ boolean is given.
## builtin/log.c ##
@@ builtin/log.c: static int git_format_config(const char *var, const char *value, void *cb)
2: 1fe780b5a4 = 2: 821e706bae format-patch: use enum variables
3: d5cd34a44b ! 3: 42b4a60fd2 format-patch: teach --cover-from-description option
@@ builtin/log.c: static void show_diffstat(struct rev_info *rev,
fprintf(rev->diffopt.file, "\n");
}
-+static void pp_from_desc(struct pretty_print_context *pp,
-+ const char *branch_name,
-+ struct strbuf *sb,
-+ const char *encoding,
-+ int need_8bit_cte)
++static void prepare_cover_text(struct pretty_print_context *pp,
++ const char *branch_name,
++ struct strbuf *sb,
++ const char *encoding,
++ int need_8bit_cte)
+{
+ const char *subject = "*** SUBJECT HERE ***";
+ const char *body = "*** BLURB HERE ***";
@@ builtin/log.c: static void make_cover_letter(struct rev_info *rev, int use_stdou
- pp_title_line(&pp, &msg, &sb, encoding, need_8bit_cte);
- pp_remainder(&pp, &msg, &sb, 0);
- add_branch_description(&sb, branch_name);
-+ pp_from_desc(&pp, branch_name, &sb, encoding, need_8bit_cte);
++ prepare_cover_text(&pp, branch_name, &sb, encoding, need_8bit_cte);
fprintf(rev->diffopt.file, "%s\n", sb.buf);
strbuf_release(&sb);
--
2.23.0.17.gd2208d9060
next prev parent reply other threads:[~2019-10-15 9:06 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-05 16:24 [PATCH 0/7] teach branch-specific options for format-patch Denton Liu
2019-05-05 16:24 ` [PATCH 1/7] t4014: clean up style Denton Liu
2019-05-05 16:24 ` [PATCH 2/7] Doc: add more detail for git-format-patch Denton Liu
2019-05-05 16:24 ` [PATCH 3/7] branch.c: extract read_branch_config function Denton Liu
2019-05-05 16:24 ` [PATCH 4/7] format-patch: make cover letter subject configurable Denton Liu
2019-05-05 16:24 ` [PATCH 5/7] format-patch: move extra_headers logic later Denton Liu
2019-05-05 16:24 ` [PATCH 6/7] string-list: create string_list_append_all Denton Liu
2019-05-05 16:24 ` [PATCH 7/7] format-patch: read branch-specific To: and Cc: headers Denton Liu
2019-05-07 8:56 ` [PATCH 0/7] teach branch-specific options for format-patch Junio C Hamano
2019-05-07 14:19 ` Denton Liu
2019-05-07 15:05 ` Junio C Hamano
2019-05-07 15:21 ` Denton Liu
2019-05-07 15:46 ` Ævar Arnfjörð Bjarmason
2019-05-08 1:45 ` Junio C Hamano
2019-05-31 2:00 ` [RFC PATCH] config: learn the "onbranch:" includeIf condition Denton Liu
2019-05-31 12:58 ` Johannes Schindelin
2019-05-31 13:16 ` Denton Liu
2019-05-31 17:23 ` Johannes Schindelin
2019-05-31 18:44 ` Denton Liu
2019-05-31 19:33 ` [PATCH v2] " Denton Liu
2019-05-31 20:14 ` Johannes Schindelin
2019-06-05 8:02 ` Johannes Schindelin
2019-06-05 10:08 ` Duy Nguyen
2019-06-05 21:21 ` [PATCH v3] " Denton Liu
2019-06-06 12:52 ` Johannes Schindelin
2019-05-17 0:27 ` [PATCH v2 0/6] teach branch-specific options for format-patch Denton Liu
2019-05-17 0:27 ` [PATCH v2 1/6] t4014: clean up style Denton Liu
2019-05-17 0:27 ` [PATCH v2 2/6] Doc: add more detail for git-format-patch Denton Liu
2019-05-17 0:27 ` [PATCH v2 3/6] format-patch: make cover letter subject configurable Denton Liu
2019-05-17 0:27 ` [PATCH v2 4/6] format-patch: move extra_headers logic later Denton Liu
2019-05-17 0:27 ` [PATCH v2 5/6] string-list: create string_list_append_all Denton Liu
2019-05-17 0:27 ` [PATCH v2 6/6] format-patch: read branch-specific To: and Cc: headers Denton Liu
2019-05-17 4:12 ` [PATCH v2 0/6] teach branch-specific options for format-patch Junio C Hamano
2019-05-17 7:25 ` Denton Liu
2019-05-17 16:54 ` Denton Liu
2019-05-22 2:44 ` [PATCH v3 0/8] " Denton Liu
2019-05-22 2:44 ` [PATCH v3 1/8] t4014: clean up style Denton Liu
2019-05-22 2:44 ` [PATCH v3 2/8] Doc: add more detail for git-format-patch Denton Liu
2019-05-22 2:44 ` [PATCH v3 3/8] format-patch: infer cover letter from branch description Denton Liu
2019-05-22 2:44 ` [PATCH v3 4/8] format-patch: move extra_headers logic later Denton Liu
2019-05-22 2:44 ` [PATCH v3 5/8] string-list: create string_list_append_all Denton Liu
2019-05-22 2:44 ` [PATCH v3 6/8] format-patch: read branch-specific To: and Cc: headers Denton Liu
2019-05-22 2:44 ` [PATCH v3 7/8] format-patch: move output_directory logic later Denton Liu
2019-05-22 2:44 ` [PATCH v3 8/8] format-patch: read branch-specific output directory Denton Liu
2019-05-31 0:30 ` [PATCH v3 0/8] teach branch-specific options for format-patch Denton Liu
2019-06-14 21:56 ` [RESEND PATCH " Denton Liu
2019-06-14 21:56 ` [RESEND PATCH v3 1/8] t4014: clean up style Denton Liu
2019-06-14 21:56 ` [RESEND PATCH v3 2/8] Doc: add more detail for git-format-patch Denton Liu
2019-06-14 21:56 ` [RESEND PATCH v3 3/8] format-patch: infer cover letter from branch description Denton Liu
2019-06-14 21:56 ` [RESEND PATCH v3 4/8] format-patch: move extra_headers logic later Denton Liu
2019-06-14 21:56 ` [RESEND PATCH v3 5/8] string-list: create string_list_append_all Denton Liu
2019-06-14 21:56 ` [RESEND PATCH v3 6/8] format-patch: read branch-specific To: and Cc: headers Denton Liu
2019-06-14 21:56 ` [RESEND PATCH v3 7/8] format-patch: move output_directory logic later Denton Liu
2019-06-14 21:56 ` [RESEND PATCH v3 8/8] format-patch: read branch-specific output directory Denton Liu
2019-10-15 9:06 ` Denton Liu [this message]
2019-10-15 9:06 ` [PATCH v6 1/3] format-patch: replace erroneous and condition Denton Liu
2019-10-15 9:06 ` [PATCH v6 2/3] format-patch: use enum variables Denton Liu
2019-10-15 9:06 ` [PATCH v6 3/3] format-patch: teach --cover-from-description option Denton Liu
2019-10-16 1:28 ` [PATCH v6 0/3] format-patch: learn --infer-cover-subject option (also t4014 cleanup) Junio C Hamano
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.1571130298.git.liu.denton@gmail.com \
--to=liu.denton@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
--cc=philipoakley@iee.email \
--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).