Jonathan Tan <jonathantanmy@xxxxxxxxxx> 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.