On 13/05/21 16.57, Jeff King wrote:
I think it is actually a bug with pack-objects not sending the object, but it only seems to trigger with bitmaps. This works: git init repo cd repo echo content >file git add file git commit -m base git config uploadpack.allowfilter true git clone --no-local --bare --filter=blob:none . clone cd clone git fetch origin $(git rev-parse HEAD:file) But if I add a "git repack -adb" in the parent repository before the "cd clone", then I get: remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 fatal: bad revision 'd95f3ad14dee633a758d2e331151e950dd13e4ed' error: /home/peff/tmp/repo/. did not send all necessary objects So presumably this is a bug in the bitmap-aware filtering code that is not present in the regular filter-traversing code. But what really puzzles me is that the result seems totally broken. Yet the test coverage in t5310 passes, and nobody has noticed on major sites like GitHub (which supports partial clones and most certainly has bitmaps enabled).
I can reproduce using your test case above, thanks. Anyway, for the moment being, I clone using "git clone --depth <N>" and then deepen the clone by "git fetch --deepen <N>" iteratively until complete. I do that because of quota constraints on my network. -- An old man doll... just what I always wanted! - Clara