Re: [PATCH 2/4] format-patch: fix a bug in option exclusivity and add a test to t4014
Hello Patrick,
On 2024-04-17 08:27, Patrick Steinhardt wrote:
Show 43 quoted lines
> 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.
Show 19 quoted lines
>> 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
>> '
>>