Hi Ludo, Ludovic Courtès writes: > My inclination for the short term would be to work around this > limitation by (1) finding a heuristic to determine is a checkout has > likely accumulated too much cruft, and (2) considering such checkouts as > expired (thereby forcing a re-clone) or running ‘git gc’ on them if > ‘git’ is available. I think using the git binary instead of libgit2 as a workaround is a good idea. We can consider building it directly as well, so that people who don't have it in their profiles can still benefit from it. We could even consider using git commands in most places and using libgit2 only where we really need the tight coupling. IIUC, libgit2 is eternally trying to catch up to git and often performs in a counter-intuitive way (I expect the various bugs with stale deleted files in checkouts to be caused by this). Maybe it could also let us use bare repository and directly extract the refs we want without having to mess with checkouts? Best, -- Josselin Poiret