Subject: Re: [PATCH v3 0/8] reftable: a couple of improvements for libgit2

From: Junio C Hamano <[email-masked]>
Date: Wed, 13 Aug 2025 07:23:35 -0700

Patrick Steinhardt <[email-masked]> writes:

> On Tue, Aug 12, 2025 at 12:00:53PM -0700, Carlo Arenas wrote:
>> On Tue, Aug 12, 2025 at 2:54 AM Patrick Steinhardt <[email-masked]> wrote:
>> 
>> > Range-diff versus v2:
>> >
>> > 1:  ce08ba1217 = 1:  1613715dc9 reftable/writer: fix type used for number of records
>> > 2:  80a87ff19a = 2:  4a082b71fb reftable/writer: drop Git-specific `QSORT()` macro
>> > 3:  e230c97347 < -:  ---------- reftable/stack: fix compiler warning due to missing braces
>> > 4:  dd413b76a2 ! 3:  3977a1f497 reftable/stack: reorder code to avoid forward declarations
>> >     @@ reftable/stack.c: int reftable_stack_reload(struct reftable_stack *st)
>> >         struct reftable_stack *stack;
>> >      @@ reftable/stack.c: struct reftable_addition {
>> >
>> >     - #define REFTABLE_ADDITION_INIT {{0}}
>> >     + #define REFTABLE_ADDITION_INIT {0}
>> 
>> This define shouldn't be needed anymore AFAIK
>
> It doesn't exist anymore after this patch series, as it gets removed in
> the fourth patch. The above change in the range-diff is merely a result
> of me swapping the order of patch 3 and 4.

Interesting.

What is being shown here is that the reordering patch in the
previous round had {{0}} here (due to the old "fix compiler" step
making that change) while the new iteration has {0} instead.  These
are both context lines that we are seeing here.  As the "fix
compiler warning" step finds no counterpart, old #3 is not shown
above this part, and new #4 that removes this #define does not
appear in the output, either.

A diff-of-diff is a bit confusing to read when something like this
happens.