Re: [PATCH v2 6/8] repack: track the preferred pack explicitly in MIDX write steps
- From
Jeff King <peff@peff.net>
- Date
- Oct 3, 2026, 01:07 UTC
- Message-ID
- <20261003010720.GB839051@coredump.intra.peff.net>
- In-Reply-To
- <asBTxLW9j2AIVlxZ@com-79390>
On Fri, Oct 02, 2026 at 08:00:52PM -0500, Taylor Blau wrote:
Show 25 quoted lines
> On Fri, Oct 02, 2026 at 07:28:34PM -0400, Jeff King wrote: > > On Wed, Sep 30, 2026 at 11:11:58PM -0500, Taylor Blau wrote: > > > > > A MIDX write step marks preferred packs in its string-list entries and > > > chooses the last marked entry when executing the step. That makes the > > > choice depend on list order, preventing the list from being sorted for > > > membership checks. > > > > > > Record the last candidate directly in the step, borrowing its name from > > > the write list. This preserves preferred-pack selection while allowing > > > the list to be sorted without changing that choice. > > > > This is certainly cleaner, though it looks like the existing code works > > by marking item->util and then doing a linear search for it. So wouldn't > > that work even after sorting? > > It would if only one entry were marked, but we can mark several. > > For example, when `repack_make_midx_compaction_plan()` folds multiple > MIDX layers into one via a WRITE step, it marks each layer's preferred pack > without clearing the earlier marks. The scan doesn't stop at the first > such mark, and the last marked entry wins. > > So sorting would of course preserve the marks, but may change which one > comes last.
OK, that does make more sense. Re-reading your commit message again, I see it even says that, but somehow it didn't quite sink in the first time for me.
-Peff