From: Dragan Simic <dsimic@manjaro.org>
To: Patrick Steinhardt <ps@pks.im>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 2/4] format-patch: fix a bug in option exclusivity and add a test to t4014
Date: Thu, 18 Apr 2024 11:12:26 +0200 [thread overview]
Message-ID: <fa2532fdfd57944c7dd915b0ecc9ce15@manjaro.org> (raw)
In-Reply-To: <47ac35d45693aa5b9fa061e85da6e176@manjaro.org>
Hello Patrick,
On 2024-04-17 08:56, Dragan Simic wrote:
> On 2024-04-17 08:27, Patrick Steinhardt wrote:
>> On Wed, Apr 17, 2024 at 05:32:42AM +0200, Dragan Simic wrote:
>>> 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.
>>>
>>> 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.
>>>
>>> Signed-off-by: Dragan Simic <dsimic@manjaro.org>
>>> ---
>>> builtin/log.c | 5 ++++-
>>> t/t4014-format-patch.sh | 4 ++++
>>> 2 files changed, 8 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/builtin/log.c b/builtin/log.c
>>> index c0a8bb95e983..e5a238f1cf2c 100644
>>> --- a/builtin/log.c
>>> +++ b/builtin/log.c
>>> @@ -2050,8 +2050,11 @@ 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;
>>> + }
>>
>> As an alternative fix, can we drop `subject_prefix` and replace it
>> with
>> `sprefix.len` instead? It seems to merely be a proxy value for that
>> anyway, and if we didn't have that variable then the bug would not
>> have
>> been possible to begin with.
>
> Thanks for your feedback!
>
> I'll think about it, and I'll come back a bit later with an update.
Unfortunately, we can't use sprefix.len instead, because it can
still be zero even if the --subject-prefix option was present, more
specifically if we receive --subject-prefix="" on the command line.
The checks that use subject_prefix need to check if --subject-prefix
was specified at all as an option, instead of checking if the actual
subject prefix is of non-zero length.
As you already noted, if sprefix.len was used instead of the separate
subject_prefix variable, the '--rfc -k' bug wouldn't be possible, but
the new '--subject-prefix="" -k' bug would be possible instead.
>>> 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..e22c4ac34e6e 100755
>>> --- a/t/t4014-format-patch.sh
>>> +++ b/t/t4014-format-patch.sh
>>> @@ -1397,6 +1397,10 @@ test_expect_success '--rfc is argument order
>>> independent' '
>>> test_cmp expect actual
>>> '
>>>
>>> +test_expect_success '--rfc and -k cannot be used together' '
>>> + test_must_fail git format-patch -1 --stdout --rfc -k >patch
>>> +'
>>> +
>>> 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-18 9:13 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-17 3:32 [PATCH 0/4] format-patch: fix an option coexistence bug and add new --resend option Dragan Simic
2024-04-17 3:32 ` [PATCH 1/4] format-patch docs: avoid use of parentheses to improve readability Dragan Simic
2024-04-17 3:32 ` [PATCH 2/4] format-patch: fix a bug in option exclusivity and add a test to t4014 Dragan Simic
2024-04-17 6:15 ` Eric Sunshine
2024-04-17 6:29 ` Dragan Simic
2024-04-17 6:27 ` Patrick Steinhardt
2024-04-17 6:56 ` Dragan Simic
2024-04-18 9:12 ` Dragan Simic [this message]
2024-04-17 6:33 ` Kristoffer Haugsbakk
2024-04-17 6:40 ` Eric Sunshine
2024-04-17 7:11 ` Dragan Simic
2024-04-17 11:38 ` Kristoffer Haugsbakk
2024-04-17 11:48 ` Dragan Simic
2024-04-17 6:54 ` Dragan Simic
2024-04-17 12:00 ` Dragan Simic
2024-04-17 3:32 ` [PATCH 3/4] format-patch: new --resend option for adding "RESEND" to patch subjects Dragan Simic
2024-04-17 6:14 ` Kristoffer Haugsbakk
2024-04-17 6:36 ` Dragan Simic
2024-04-17 6:43 ` Kristoffer Haugsbakk
2024-04-17 7:16 ` Dragan Simic
2024-04-17 6:35 ` Eric Sunshine
2024-04-17 7:05 ` Dragan Simic
2024-04-17 7:17 ` Eric Sunshine
2024-04-17 7:25 ` Dragan Simic
2024-04-18 20:04 ` Dragan Simic
2024-04-17 10:02 ` Phillip Wood
2024-04-17 10:52 ` Dragan Simic
2024-04-17 11:31 ` Kristoffer Haugsbakk
2024-04-17 11:34 ` Dragan Simic
2024-04-17 11:40 ` Kristoffer Haugsbakk
2024-04-17 11:43 ` Dragan Simic
2024-04-17 15:27 ` Junio C Hamano
2024-04-17 17:34 ` Dragan Simic
2024-04-17 21:03 ` Junio C Hamano
2024-04-17 21:09 ` Dragan Simic
2024-04-18 3:12 ` Dragan Simic
2024-04-18 22:34 ` Junio C Hamano
2024-04-19 0:08 ` Dragan Simic
2024-04-19 0:15 ` Eric Sunshine
2024-04-19 0:45 ` Dragan Simic
2024-04-19 3:05 ` Eric Sunshine
2024-04-19 2:13 ` Junio C Hamano
2024-04-19 3:07 ` Eric Sunshine
2024-04-19 16:21 ` Junio C Hamano
2024-04-17 3:32 ` [PATCH 4/4] t4014: add tests to cover --resend option and its exclusivity Dragan Simic
2024-04-17 6:48 ` Eric Sunshine
2024-04-17 7:20 ` Dragan Simic
2024-04-17 6:02 ` [PATCH 0/4] format-patch: fix an option coexistence bug and add new --resend option Eric Sunshine
2024-04-17 6:07 ` Dragan Simic
2024-04-17 6:23 ` Eric Sunshine
2024-04-17 6:43 ` 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=fa2532fdfd57944c7dd915b0ecc9ce15@manjaro.org \
--to=dsimic@manjaro.org \
--cc=git@vger.kernel.org \
--cc=ps@pks.im \
/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).