| … | … | @@ -320,7 +320,7 @@ export class GitSyncClientManager { |
| 320 | 320 | await new Promise((resolve, reject) => { |
| 321 | 321 | let done = false |
| 322 | 322 | const child = spawn('git', [ |
| 323 | | '-C', repoPath, 'fetch', fetchUrl, |
| 323 | '-C', repoPath, 'fetch', '--progress', fetchUrl, |
| 324 | 324 | 'refs/*:refs/*', '--no-tags' |
| 325 | 325 | ], { detached: true }) |
| 326 | 326 | |
| … | … | @@ -344,7 +344,15 @@ export class GitSyncClientManager { |
| 344 | 344 | }) |
| 345 | 345 | |
| 346 | 346 | const stderrBuf = [] |
| 347 | | child.stderr.on('data', (d) => { stderrBuf.push(d.toString()) }) |
| 347 | child.stderr.on('data', (d) => { |
| 348 | const line = d.toString() |
| 349 | stderrBuf.push(line) |
| 350 | // Log progress lines (Receiving/Resolving) for sysadmin visibility |
| 351 | if (line.includes('Receiving') || line.includes('Resolving') || line.includes('remote:')) { |
| 352 | const clean = line.replace(/\r/g, '\n').trim() |
| 353 | if (clean) console.log(`[GitSync] ${repoName}: ${clean}`) |
| 354 | } |
| 355 | }) |
| 348 | 356 | }) |
| 349 | 357 | |
| 350 | 358 | // Refresh repo metadata (commits, branches, lastCommit) so the UI stays current |