Re: [PATCH 3/7] pack-objects: add GIT_TEST_FULL_NAME_HASH
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 22, 2024, 03:23 UTC
- Message-ID
- <xmqqcyioar4r.fsf@gitster.g>
- In-Reply-To
- <20241122011308.2743517-1-jonathantanmy@google.com>
Jonathan Tan <jonathantanmy@google.com> writes:
Show 5 quoted lines
> ... 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.