aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/git-format-patch.adoc17
-rw-r--r--builtin/log.c4
-rwxr-xr-xt/t4014-format-patch.sh41
-rwxr-xr-xt/t9902-completion.sh1
4 files changed, 32 insertions, 31 deletions
diff --git a/Documentation/git-format-patch.adoc b/Documentation/git-format-patch.adoc
index 31fa492335..45ca72e670 100644
--- a/Documentation/git-format-patch.adoc
+++ b/Documentation/git-format-patch.adoc
@@ -24,7 +24,7 @@ SYNOPSIS
[(--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>]
@@ -323,16 +323,15 @@ feeding the result to `git send-email`.
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::
diff --git a/builtin/log.c b/builtin/log.c
index 997bdd608e..a7f129d583 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -2014,7 +2014,7 @@ int cmd_format_patch(int argc,
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")),
@@ -2358,6 +2358,8 @@ int cmd_format_patch(int argc,
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) {
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 7c67bdf922..d2a775f78d 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -383,49 +383,50 @@ test_expect_success 'filename limit applies only to basename' '
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' '
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 35e20b5351..2f9a597ec7 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -2775,7 +2775,6 @@ test_expect_success PERL 'send-email' '
test_completion "git send-email --cov" <<-\EOF &&
--cover-from-description=Z
--cover-letter Z
- --cover-letter-format=Z
EOF
test_completion "git send-email --val" <<-\EOF &&
--validate Z