From: Junio C Hamano Date: Fri, 22 Nov 2024 03:23:16 GMT Subject: Re: [PATCH 3/7] pack-objects: add GIT_TEST_FULL_NAME_HASH Message-ID: In-Reply-To: <20241122011308.2743517-1-jonathantanmy@google.com> Jonathan Tan writes: > ... During the subsequent connectivity > check, the "make the tree big\n" blob (referenced by treeB) is missing. > There is nothing that can vouch for it (the client does not have treeA, > remember) so the client does not consider it a promisor object, and thus > the connectivity check fails. It is sad that it is a (probably unfixable) flaw in the "promisor object" concept that the "promisor object"-ness of blobA depends on the lazy-fetch status of treeA. This is not merely a test failure, but it would cause blobA pruned if such a lazy fetch happens in the wild and then "git gc" triggers, no? It may not manifest as a repository corruption, since we would lazily fetch it again if the user requests to fully fetch what commitA and treeA need, but it does feel somewhat suboptimal. Thanks for a detailed explanation on what is going on.