| … | … | @@ -319,12 +319,10 @@ export class GitSyncClientManager { |
| 319 | 319 | |
| 320 | 320 | await new Promise((resolve, reject) => { |
| 321 | 321 | 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. |
| 322 | // Full fetch — federation mirrors need all objects to serve clients. |
| 323 | // Large transfers may take minutes but won't be killed (no hard timeout). |
| 326 | 324 | const child = spawn('git', [ |
| 327 | | '-C', repoPath, 'fetch', '--progress', '--filter=blob:none', |
| 325 | '-C', repoPath, 'fetch', '--progress', |
| 328 | 326 | fetchUrl, 'refs/*:refs/*', '--no-tags' |
| 329 | 327 | ], { detached: true }) |
| 330 | 328 | |