From: Dragan Simic <dsimic@manjaro.org>
To: git@vger.kernel.org
Cc: gitster@pobox.com, sunshine@sunshineco.com, code@khaugsbakk.name,
phillip.wood123@gmail.com, ps@pks.im,
Drew DeVault <sir@cmpwn.com>
Subject: Re: [PATCH] format-patch: ensure that --rfc and -k are mutually exclusive
Date: Fri, 19 Apr 2024 04:58:20 +0200 [thread overview]
Message-ID: <b4c6cbf5f3246ecd0cf27c7e87bf6dfc@manjaro.org> (raw)
In-Reply-To: <71d195c248879e7c46fac0e84c6b0a8aa90bd2c2.1713488563.git.dsimic@manjaro.org>
+Cc: Drew DeVault <sir@cmpwn.com>
On 2024-04-19 03:05, Dragan Simic wrote:
> 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>
> ---
>
> Notes:
> This patch originates from my earlier patch series, [1] for which
> it was concluded to not be acceptable in its entirety. [2]
>
> This version of the patch includes improvements based on the
> valuable
> and appreciated feedback from the reviewers:
> - Improved and simplified the patch subject and patch
> description, as
> suggested by Eric Sunshine [3] and Kristoffer Haugsbakk [4]
> - Removed a redundant comment from the bugfix, as suggested by
> Eric
> Sunshine and Kristoffer Haugsbakk [5]
> - Squashed the bugfix and the new tests into a single patch, for
> easier
> reviewing, as suggested by Eric Sunshine [6]
> - Improved the main new test, as suggested by Kristoffer
> Haugsbakk, [4]
> and added validation of both stdout and stderr outputs
> - Added a couple of more tests, to cover additional cases of the
> mutual
> exclusivity of the available command-line options
>
> [1]
> https://lore.kernel.org/git/b7568429acad91ff2d9a1574111441a3@manjaro.org/T/#mfcbbcf38e23698d09f524cc3b49ed1d855b90018
> [2]
> https://lore.kernel.org/git/b7568429acad91ff2d9a1574111441a3@manjaro.org/T/#m9441b5486ca9229d5bfff9c2a92bc80eef341baf
> [3]
> https://lore.kernel.org/git/CAPig+cTEp799w2-VEACYThW0COyo0SJLRS_sr-PG=LX++Tompw@mail.gmail.com/T/#u
> [4]
> https://lore.kernel.org/git/e4aa5235-c6ad-45c7-930e-de991cc375f2@app.fastmail.com/T/#u
> [5]
> https://lore.kernel.org/git/CAPig+cSGZr4zE=Dp7Z58CN0kmkpXdc8SOopXmB9=ry4gwNkq=w@mail.gmail.com/T/#u
> [6]
> https://lore.kernel.org/git/CAPig+cRBjosyadQHO03fcCz7YBc=T04ytHkpt9UU87tLaiSOgw@mail.gmail.com/T/#u
>
> Range-diff:
> 1: 25b90d065744 < -: ------------ format-patch docs: avoid use of
> parentheses to improve readability
> 2: c975f961779b ! 1: 71d195c24887 format-patch: fix a bug in option
> exclusivity and add a test to t4014
> @@ Metadata
> Author: Dragan Simic <dsimic@manjaro.org>
>
> ## Commit message ##
> - format-patch: fix a bug in option exclusivity and add a test
> to t4014
> + format-patch: ensure that --rfc and -k are mutually exclusive
>
> - Fix a bug that allows --rfc and -k options to be specified
> together when
> - executing "git format-patch". This bug was introduced back
> in the commit
> - e0d7db7423a9 ("format-patch: --rfc honors what
> --subject-prefix sets"),
> - about eight months ago, but it has remained undetected so
> far, presumably
> - because of no associated test coverage.
> + 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 new test to the t4014 that covers the mutual
> exclusivity of the --rfc
> - and -k command-line options for "git format-patch", for
> future coverage.
> + 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>
>
> +
> + ## Notes ##
> + This patch originates from my earlier patch series, [1] for
> which
> + it was concluded to not be acceptable in its entirety. [2]
> +
> + This version of the patch includes improvements based on the
> valuable
> + and appreciated feedback from the reviewers:
> + - Improved and simplified the patch subject and patch
> description, as
> + suggested by Eric Sunshine [3] and Kristoffer Haugsbakk
> [4]
> + - Removed a redundant comment from the bugfix, as suggested
> by Eric
> + Sunshine and Kristoffer Haugsbakk [5]
> + - Squashed the bugfix and the new tests into a single
> patch, for easier
> + reviewing, as suggested by Eric Sunshine [6]
> + - Improved the main new test, as suggested by Kristoffer
> Haugsbakk, [4]
> + and added validation of both stdout and stderr outputs
> + - Added a couple of more tests, to cover additional cases
> of the mutual
> + exclusivity of the available command-line options
> +
> + [1]
> https://lore.kernel.org/git/b7568429acad91ff2d9a1574111441a3@manjaro.org/T/#mfcbbcf38e23698d09f524cc3b49ed1d855b90018
> + [2]
> https://lore.kernel.org/git/b7568429acad91ff2d9a1574111441a3@manjaro.org/T/#m9441b5486ca9229d5bfff9c2a92bc80eef341baf
> + [3]
> https://lore.kernel.org/git/CAPig+cTEp799w2-VEACYThW0COyo0SJLRS_sr-PG=LX++Tompw@mail.gmail.com/T/#u
> + [4]
> https://lore.kernel.org/git/e4aa5235-c6ad-45c7-930e-de991cc375f2@app.fastmail.com/T/#u
> + [5]
> https://lore.kernel.org/git/CAPig+cSGZr4zE=Dp7Z58CN0kmkpXdc8SOopXmB9=ry4gwNkq=w@mail.gmail.com/T/#u
> + [6]
> https://lore.kernel.org/git/CAPig+cRBjosyadQHO03fcCz7YBc=T04ytHkpt9UU87tLaiSOgw@mail.gmail.com/T/#u
> +
> ## builtin/log.c ##
> @@ builtin/log.c: 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)
> -+ /* Also mark the subject prefix as modified, for later checks */
> + if (rfc) {
> strbuf_insertstr(&sprefix, 0, "RFC ");
> + subject_prefix = 1;
> + }
>
> if (reroll_count) {
> strbuf_addf(&sprefix, " v%s", reroll_count);
>
> ## t/t4014-format-patch.sh ##
> @@ t/t4014-format-patch.sh: 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' '
> -+ test_must_fail git format-patch -1 --stdout --rfc -k >patch
> ++ 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' '
> 3: 1d9c6ce3df71 < -: ------------ format-patch: new --resend option
> for adding "RESEND" to patch subjects
> 4: 42865d6c6694 < -: ------------ t4014: add tests to cover --resend
> option and its exclusivity
>
> builtin/log.c | 4 +++-
> t/t4014-format-patch.sh | 21 +++++++++++++++++++++
> 2 files changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/builtin/log.c b/builtin/log.c
> index c0a8bb95e983..8bab30fcc70d 100644
> --- a/builtin/log.c
> +++ b/builtin/log.c
> @@ -2050,8 +2050,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 e37a1411ee24..90fe6d066cc0 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
> '
next prev parent reply other threads:[~2024-04-19 2:58 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-19 1:05 [PATCH] format-patch: ensure that --rfc and -k are mutually exclusive Dragan Simic
2024-04-19 2:58 ` Dragan Simic [this message]
2024-04-19 8:51 ` Drew DeVault
2024-04-19 9:30 ` Dragan Simic
2024-04-19 13:43 ` Kristoffer Haugsbakk
2024-04-19 15:43 ` Junio C Hamano
2024-04-21 14:00 ` Dragan Simic
2024-04-21 13:50 ` Dragan Simic
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=b4c6cbf5f3246ecd0cf27c7e87bf6dfc@manjaro.org \
--to=dsimic@manjaro.org \
--cc=code@khaugsbakk.name \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=phillip.wood123@gmail.com \
--cc=ps@pks.im \
--cc=sir@cmpwn.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).