OverviewFilesCommitsIssuesDocsReleasesPeers

pear-git commits / 421cb06

Federation sync: use --filter=blob:none for large repo sync
Full pack transfers (1+ GB) disconnect mid-stream over P2P. Partial clone filter fetches only tree metadata + refs (~10 MB). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
421cb06b042306f38f856d050136718ccfd38197
by plankatron <fleeky@gmail.com> · 2026-04-07T16:50:23.000Z

Changed files (1) +6 -2

lib/p2p/sync/git-sync-client-manager.js +6 -2
……@@ -319,9 +319,13 @@ export class GitSyncClientManager {
319319
320320 await new Promise((resolve, reject) => {
321321 let done = false
322 // Use --filter=blob:none for large repos — fetches only tree metadata
323 // and refs, not blob content. Federation mirrors don't need blobs;
324 // clients fetch blobs on demand via sparse checkout.
325 // This reduces transfer from 1+ GB to ~10 MB for large repos.
322326 const child = spawn('git', [
323 '-C', repoPath, 'fetch', '--progress', fetchUrl,
324 'refs/*:refs/*', '--no-tags'
327 '-C', repoPath, 'fetch', '--progress', '--filter=blob:none',
328 fetchUrl, 'refs/*:refs/*', '--no-tags'
325329 ], { detached: true })
326330
327331 // No hard timeout — large repos (1+ GB) can take minutes.