aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDragan Simic <dsimic@manjaro.org>2024-04-19 03:05:30 +0200
committerJunio C Hamano <gitster@pobox.com>2024-04-19 08:40:57 -0700
commitcadcf58085cada6e781444cbdde6d4b0067ebe4c (patch)
tree4cec1db57497488986455538a2e4dcf376e24112
parente0d7db7423a91673c001aaa5e580c815ce2f7f92 (diff)
downloadgit-cadcf58085cada6e781444cbdde6d4b0067ebe4c.tar.gz
format-patch: ensure that --rfc and -k are mutually exclusive
Fix a bug that allows the "--rfc" and "-k" options to be specified together when "git format-patch" is executed, which was introduced in the commit e0d7db7423a9 ("format-patch: --rfc honors what --subject-prefix sets"). Add a couple of additional tests to t4014, to cover additional cases of the mutual exclusivity between different "git format-patch" options. Signed-off-by: Dragan Simic <dsimic@manjaro.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/log.c4
-rwxr-xr-xt/t4014-format-patch.sh21
2 files changed, 24 insertions, 1 deletions
diff --git a/builtin/log.c b/builtin/log.c
index 75762b497d..f08b8b5086 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -2044,8 +2044,10 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
if (cover_from_description_arg)
cover_from_description_mode = parse_cover_from_description(cover_from_description_arg);
- if (rfc)
+ if (rfc) {
strbuf_insertstr(&sprefix, 0, "RFC ");
+ subject_prefix = 1;
+ }
if (reroll_count) {
strbuf_addf(&sprefix, " v%s", reroll_count);
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 9fa1f3bc7a..bce17703da 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -1397,6 +1397,27 @@ test_expect_success '--rfc is argument order independent' '
test_cmp expect actual
'
+test_expect_success '--subject-prefix="<non-empty>" and -k cannot be used together' '
+ echo "fatal: options '\''--subject-prefix/--rfc'\'' and '\''-k'\'' cannot be used together" >expect.err &&
+ test_must_fail git format-patch -1 --stdout --subject-prefix="MYPREFIX" -k >actual.out 2>actual.err &&
+ test_must_be_empty actual.out &&
+ test_cmp expect.err actual.err
+'
+
+test_expect_success '--subject-prefix="" and -k cannot be used together' '
+ echo "fatal: options '\''--subject-prefix/--rfc'\'' and '\''-k'\'' cannot be used together" >expect.err &&
+ test_must_fail git format-patch -1 --stdout --subject-prefix="" -k >actual.out 2>actual.err &&
+ test_must_be_empty actual.out &&
+ test_cmp expect.err actual.err
+'
+
+test_expect_success '--rfc and -k cannot be used together' '
+ echo "fatal: options '\''--subject-prefix/--rfc'\'' and '\''-k'\'' cannot be used together" >expect.err &&
+ test_must_fail git format-patch -1 --stdout --rfc -k >actual.out 2>actual.err &&
+ test_must_be_empty actual.out &&
+ test_cmp expect.err actual.err
+'
+
test_expect_success '--from=ident notices bogus ident' '
test_must_fail git format-patch -1 --stdout --from=foo >patch
'