From: Taylor Blau <ttaylorr@openai.com>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Ted Nyman <tnyman@openai.com>, Elijah Newren <newren@github.com>
Subject: Re: [PATCH v2 8/8] repack: include required packs in incremental MIDX writes
Date: Fri, 2 Oct 2026 20:01:59 -0500 [thread overview]
Message-ID: <asBUBwM2N8lQM602@com-79390> (raw)
In-Reply-To: <20261002234157.GF834759@coredump.intra.peff.net>
On Fri, Oct 02, 2026 at 07:41:57PM -0400, Jeff King wrote:
> On Wed, Sep 30, 2026 at 11:12:05PM -0500, Taylor Blau wrote:
>
> > The geometric plan from 1da62fb5c86 (repack: implement incremental MIDX
> > repacking, 2026-05-19) can omit kept and cruft packs, since neither
> > necessarily participates in the geometric repack. Such packs can also be
> > lost when replacing a tip layer that contains them. Neither plan
> > consults `midx_included_packs()`, so the rules for retaining cruft in
> > ordinary MIDX writes do not protect incremental writes.
> >
> > Use that selection logic to add missing packs to each plan's write step.
> > Skip packs in retained base layers, but include required packs from a
> > replaced tip. Count added objects when choosing which layers to compact,
> > without changing the preferred pack.
>
> I admit I had a hard time following this patch. I think the point is
> that we're going to include some packs in the midx that were not covered
> previously. But it was hard to see where that happens. I think the magic
> bit is this:
>
> > @@ -557,17 +604,20 @@ static void repack_make_midx_append_plan(struct repack_write_midx_opts *opts,
> > size_t *steps_nr_p)
> > [..]
> > - for (i = 0; i < opts->names->nr; i++) {
> > + midx_included_packs(&include, opts, m);
>
> where we rely on midx_included_packs() to do that selection.
Yeah, that's right. I wrote this code in the first place, and it wasn't
even *that* long ago and I had to spend a not-insignificant amount of
time (re)acquainting myself with this area before writing this patch.
Thanks,
Taylor
prev parent reply other threads:[~2026-10-03 1:02 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-30 1:28 [PATCH 0/4] repack: various corner cases for cruft-less MIDXs Taylor Blau
2026-09-30 1:28 ` [PATCH 1/4] pack-objects: introduce `stdin_packs_context` struct Taylor Blau
2026-09-30 17:42 ` Junio C Hamano
2026-10-01 3:13 ` Taylor Blau
2026-09-30 1:28 ` [PATCH 2/4] pack-objects: ensure tree/tag closure with '--stdin-packs=follow' Taylor Blau
2026-09-30 17:51 ` Junio C Hamano
2026-09-30 18:16 ` Derrick Stolee
2026-10-01 3:14 ` Taylor Blau
2026-10-01 23:22 ` Elijah Newren
2026-10-02 0:51 ` Taylor Blau
2026-10-02 23:02 ` Jeff King
2026-09-30 20:31 ` Jeff King
2026-10-01 3:18 ` Taylor Blau
2026-09-30 1:28 ` [PATCH 3/4] repack: retain cruft packs in MIDXs after incremental repacks Taylor Blau
2026-09-30 20:45 ` Jeff King
2026-10-01 3:21 ` Taylor Blau
2026-09-30 1:28 ` [PATCH 4/4] repack: retain cruft packs in MIDXs containing kept packs Taylor Blau
2026-09-30 20:53 ` Jeff King
2026-10-01 3:35 ` Taylor Blau
2026-09-30 20:55 ` [PATCH 0/4] repack: various corner cases for cruft-less MIDXs Jeff King
2026-10-01 3:37 ` Taylor Blau
2026-10-01 4:11 ` [PATCH v2 0/8] " Taylor Blau
2026-10-01 4:11 ` [PATCH v2 1/8] pack-objects: introduce `stdin_packs_context` struct Taylor Blau
2026-10-01 4:11 ` [PATCH v2 2/8] pack-objects: ensure tree/tag closure with '--stdin-packs=follow' Taylor Blau
2026-10-02 23:13 ` Jeff King
2026-10-03 0:55 ` Taylor Blau
2026-10-03 1:06 ` Jeff King
2026-10-01 4:11 ` [PATCH v2 3/8] repack: retain cruft packs in MIDXs after incremental repacks Taylor Blau
2026-10-01 4:11 ` [PATCH v2 4/8] repack: use a sorted list for explicitly kept packs Taylor Blau
2026-10-02 23:16 ` Jeff King
2026-10-01 4:11 ` [PATCH v2 5/8] repack: follow kept packs when omitting cruft from the MIDX Taylor Blau
2026-10-02 23:25 ` Jeff King
2026-10-03 0:50 ` Taylor Blau
2026-10-01 4:11 ` [PATCH v2 6/8] repack: track the preferred pack explicitly in MIDX write steps Taylor Blau
2026-10-02 23:28 ` Jeff King
2026-10-03 1:00 ` Taylor Blau
2026-10-03 1:07 ` Jeff King
2026-10-01 4:12 ` [PATCH v2 7/8] repack: defer allocating the append plan's write step Taylor Blau
2026-10-01 4:12 ` [PATCH v2 8/8] repack: include required packs in incremental MIDX writes Taylor Blau
2026-10-02 23:41 ` Jeff King
2026-10-03 1:01 ` Taylor Blau [this message]
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=asBUBwM2N8lQM602@com-79390 \
--to=ttaylorr@openai.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@github.com \
--cc=peff@peff.net \
--cc=tnyman@openai.com \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.