Re: [PATCH v2 6/8] repack: track the preferred pack explicitly in MIDX write steps
flat view
From: Jeff King <hidden>
Date: 2026-10-03 01:07:22
On Fri, Oct 02, 2026 at 08:00:52PM -0500, Taylor Blau wrote:
On Fri, Oct 02, 2026 at 07:28:34PM -0400, Jeff King wrote:quoted
On Wed, Sep 30, 2026 at 11:11:58PM -0500, Taylor Blau wrote:quoted
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