From: Taylor Blau Date: Tue, 09 Dec 2025 02:07:33 GMT Subject: Re: [PATCH 09/17] midx: do not require packs to be sorted in lexicographic order Message-ID: In-Reply-To: On Mon, Dec 08, 2025 at 07:26:53PM +0100, Patrick Steinhardt wrote: > On Sat, Dec 06, 2025 at 03:31:25PM -0500, Taylor Blau wrote: > > Note that this produces MIDXs which may be incompatible with earlier > > versions of Git that have stricter requirements on the layout of packs > > within a MIDX. This patch does *not* modify the version number of the > > MIDX format, since existing versions of Git already know to gracefully > > ignore a MIDX with packs that appear out-of-order. > > Interesting. Did you verify how other implementations of Git behave if > we start to relax this requirement? It seems like a somewhat dangerous > assumption to me that this will just continue to work. That's a great point. It looks like current libgit2 assumes[1] that the list is sorted and complains loudly if it is not. Presumably other implementations behave similarly. I think that is a compelling enough argument to swing us towards bumping the version number to avoid compatibility issues. > Also, is there a reason why you prefer this over bumping the version > number? I was trying to avoid having all existing Git clients be unable to read v2 MIDXs for such a seemingly minor change, but I think the above compels us to. > I assume that it cannot happen that we append to the array of MIDX'd > packs after we have sorted. It would mean that the MIDX somehow changed > its representation or was amended to, which isn't possible. That's right. Thanks, Taylor [1]: https://github.com/libgit2/libgit2/blob/v1.9.2/src/libgit2/midx.c#L75-L76