Subject: Re: RFC on packfile URIs and .gitmodules check

From: Junio C Hamano <[email-masked]>
Date: Thu, 21 Jan 2021 10:39:42 -0800

Jonathan Tan <[email-masked]> writes:

>> Jonathan Tan <[email-masked]> writes:
>> 
>> Or can there be a situation where some objects in CDN pack are
>> referred to by objects in the up-to-the-minute-fresh pack (e.g. a
>> ".gitmodules" blob in CDN pack is still unchanged and used in an
>> updated tree in the latest revision) and some other objects in CDN
>> pack refer to an object in the live part of the history?  If there
>> is such a cyclic dependency, "index-pack --fsck" one pack at a time
>> would not work, but I doubt such a cycle can arise.
>
> My intention is that the order of the packfiles (and cyclic
> dependencies) would not matter...
> I'm currently working on
> getting index-pack to output a list of the dangling .gitmodules files,
> so that fetch-pack (its consumer) can do one final fsck on those files.

In other words, it essentially becomes "we check everything we
obtained as a single unit across multiple packs, but for performance
we'll let index-pack work as much as possible on each individual
pack while it has necessary data in its core, and then we conclude
by checking the objects on the 'boundaries' that cannot be validated
using info that is only in one pack".

That does sound like the right approach.  THanks.