[(--reroll-count|-v) <n>]
[--to=<email>] [--cc=<email>]
[--[no-]cover-letter] [--quiet]
- [--cover-letter-format=<format-spec>]
+ [--commit-list-format=<format-spec>]
[--[no-]encode-email-headers]
[--no-notes | --notes[=<ref>]]
[--interdiff=<previous>]
containing the branch description, shortlog and the overall diffstat. You can
fill in a description in the file before sending it out.
---cover-letter-format=<format-spec>::
- Specify the format in which to generate the commit list of the
- patch series. This option is available if the user wants to use
- an alternative to the default `shortlog` format. The accepted
- values for format-spec are "shortlog" or a format string
- prefixed with `log:`.
+--commit-list-format=<format-spec>::
+ Specify the format in which to generate the commit list of the patch
+ series. The accepted values for format-spec are "shortlog" or a format
+ string prefixed with `log:`.
e.g. `log: %s (%an)`
- If defined, defaults to the `format.commitListFormat` configuration
+ If not given, defaults to the `format.commitListFormat` configuration
variable.
- This option is relevant only if a cover letter is generated.
+ This option implies the use of `--cover-letter` unless
+ `--no-cover-letter` is given.
--encode-email-headers::
--no-encode-email-headers::
N_("print patches to standard out")),
OPT_BOOL(0, "cover-letter", &cover_letter,
N_("generate a cover letter")),
- OPT_STRING(0, "cover-letter-format", &cover_letter_fmt, N_("format-spec"),
+ OPT_STRING(0, "commit-list-format", &cover_letter_fmt, N_("format-spec"),
N_("format spec used for the commit list in the cover letter")),
OPT_BOOL(0, "numbered-files", &just_numbers,
N_("use simple number sequence for output file names")),
cover_letter_fmt = cfg.fmt_cover_letter_commit_list;
if (!cover_letter_fmt)
cover_letter_fmt = "shortlog";
+ } else if (cover_letter == -1) {
+ cover_letter = 1;
}
if (cover_letter == -1) {
test_expect_success 'cover letter with subject, author and count' '
rm -rf patches &&
test_when_finished "git reset --hard HEAD~1" &&
- test_when_finished "rm -rf patches result test_file" &&
+ test_when_finished "rm -rf patches test_file" &&
touch test_file &&
git add test_file &&
git commit -m "This is a subject" &&
- git format-patch --cover-letter \
- --cover-letter-format="log:[%(count)/%(total)] %s (%an)" -o patches HEAD~1 &&
- grep "^\[1/1\] This is a subject (A U Thor)$" patches/0000-cover-letter.patch >result &&
- test_line_count = 1 result
+ git format-patch --commit-list-format="log:[%(count)/%(total)] %s (%an)" \
+ -o patches HEAD~1 &&
+ test_grep "^\[1/1\] This is a subject (A U Thor)$" patches/0000-cover-letter.patch
'
-test_expected_success 'cover letter with author and count' '
+test_expect_success 'cover letter with author and count' '
test_when_finished "git reset --hard HEAD~1" &&
- test_when_finished "rm -rf patches result test_file" &&
+ test_when_finished "rm -rf patches test_file" &&
touch test_file &&
git add test_file &&
git commit -m "This is a subject" &&
- git format-patch --cover-letter \
- --cover-letter-format="log:[%(count)/%(total)] %an" -o patches HEAD~1 &&
- grep "^\[1/1\] A U Thor$" patches/0000-cover-letter.patch >result &&
- test_line_count = 1 result
+ git format-patch --commit-list-format="log:[%(count)/%(total)] %an" \
+ -o patches HEAD~1 &&
+ test_grep "^\[1/1\] A U Thor$" patches/0000-cover-letter.patch
'
test_expect_success 'cover letter shortlog' '
test_when_finished "git reset --hard HEAD~1" &&
- test_when_finished "rm -rf patches result test_file" &&
+ test_when_finished "rm -rf expect patches result test_file" &&
+ cat >expect <<-"EOF" &&
+ A U Thor (1):
+ This is a subject
+ EOF
touch test_file &&
git add test_file &&
git commit -m "This is a subject" &&
- git format-patch --cover-letter --cover-letter-format=shortlog \
- -o patches HEAD~1 &&
- sed -n -e "/^A U Thor/p;" patches/0000-cover-letter.patch >result &&
- test_line_count = 1 result
+ git format-patch --commit-list-format=shortlog -o patches HEAD~1 &&
+ grep -E -A 1 "^A U Thor \([[:digit:]]+\):$" patches/0000-cover-letter.patch >result &&
+ cat result &&
+ test_cmp expect result
'
-test_expect_success 'cover letter no format' '
+test_expect_success 'no cover letter but with format specified' '
test_when_finished "git reset --hard HEAD~1" &&
test_when_finished "rm -rf patches result test_file" &&
touch test_file &&
git add test_file &&
git commit -m "This is a subject" &&
- git format-patch --cover-letter -o patches HEAD~1 &&
- sed -n -e "/^A U Thor/p;" patches/0000-cover-letter.patch >result &&
- test_line_count = 1 result
+ git format-patch --no-cover-letter --commit-list-format="[%(count)] %s" -o patches HEAD~1 &&
+ test_path_is_missing patches/0000-cover-letter.patch
'
test_expect_success 'cover letter config with count, subject and author' '