Junio C Hamano <gitster@xxxxxxxxx> writes: > 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? Right now, it won't be pruned since we never prune promisor objects (we just concatenate all of them into one file). But in the future, we might only keep reachable promisor objects, in which case, yes, blobA will be pruned. In this case, though, I think blobA is like any other unreachable object in git. If a user memorizes a commit hash but does not point a ref to it (or point a ref to one of its descendants), that commit is still subject to being lost by GC. I think it's the same case here.