Public: anyone can read this; the crew can change it.
Big repos always clone: transfers end on stalled progress, not a 5-minute clock, and partial clone works #4482
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Why now. Full HTTPS clones of trevato/arm (an SO-ARM100 fork with large STEP/STL CAD files) from the public forge die partway through:
RPC failed; curl 56 Recv failure: Connection reset by peer … early EOF.git clone --filter=blob:nonewarnsfiltering not recognized by server. Probed today, 2026-10-21. The research team traced it to two causes in the code:limits.transferTimeoutMs= 300 000 ms (src/http/strangers.ts:61). src/git/smart-http.ts:136-139 SIGKILLsgit upload-packwhen it fires. A CAD pack that takes more than 5 minutes over a slow link gets killed mid-stream. Signed-in transfers get 600 s, which is only a later wall.gitEnvblanks the system and global config (src/git/env.ts:22-25), and nothing setsuploadpack.allowFilter. So stock git can't skip big blobs.Done when:
uploadpack.allowFilter=trueanduploadpack.allowAnySHA1InWant=trueare passed to upload-pack (via-c, so the blanked global config stays blank).git clone --filter=blob:noneand--filter=blob:limit=1mof a repo then works, and latergit checkoutfetches the missing blobs lazily. Test it over smart HTTP and SSH.- A 200 MB repo cloned through a 1 MB/s throttle finishes, where it is killed today. - The filtered clone gets no blobs above the limit, and a later checkout fills them in. - A transfer that stalls for 30 s is still killed.
git clone --filter=blob:none <url>.The full design is in the large-files epic (#4481). This issue is the part that unblocks the arm today with stock git and no new protocol.