From: Jeff King Date: Wed, 27 Mar 2024 08:37:25 GMT Subject: Re: [PATCH 11/11] midx-write.c: use `--stdin-packs` when repacking Message-ID: <20240327083725.GC830163@coredump.intra.peff.net> In-Reply-To: <736be63234baf7fc6df8259d9bb7298858b2bc74.1711387439.git.me@ttaylorr.com> On Mon, Mar 25, 2024 at 01:24:50PM -0400, Taylor Blau wrote: > Though correct, this typically yields a poorly structured pack, since > providing the objects list over stdin does not give pack-objects a > chance to discover the namehash values for each object, leading to > sub-optimal delta selection. > > We can use `--stdin-packs` instead, which has a couple of benefits: > > - it does a supplemental walk over objects in the supplied list of > packs to discover their namehash, leading to higher-quality delta > selection > > - it requires us to list far less data over stdin; instead of listing > each object in the resulting pack, we need only list the > constituent packs from which those objects were selected in the MIDX Yeah, using --stdin-packs makes much more sense to me. I have to admit that I do not really see the point "multi-pack-index repack" in the first place. You'd presumably be better off with geometric repacking, and I think "repack --geometric --write-midx" will do things in the right order (new pack, then write midx, then delete redundant packs). I guess "multi-pack-index repack" came before geometric repacking, and is maybe redundant-ish now? If that's the case, then I guess I don't care that much about optimizing its packs. ;) But we can't really delete it without a deprecation period, so making it more sensible in the meantime is reasonable to me. -Peff