From 2e6d0881d9df9a61ac7dfa533b727ae9e9b4403e Mon Sep 17 00:00:00 2001 From: Gavin Mak Date: Thu, 17 Jul 2025 13:17:32 -0700 Subject: sync: Improve UI and error reporting for interleaved mode This fixes two issues: 1. the progress bar could show a count greater than the total if new projects were discovered mid-sync. Update the progress bar total dynamically 2. Make "Stall detected" error message more actionable Bug: 432206932 Change-Id: Ie2a4ada5b1770cae0302fb06590641c522cbb7e7 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/491941 Tested-by: Gavin Mak Reviewed-by: Scott Lee Commit-Queue: Gavin Mak --- subcmds/sync.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'subcmds/sync.py') diff --git a/subcmds/sync.py b/subcmds/sync.py index 250925f4..13a322bc 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -2505,11 +2505,22 @@ later is required to fix a server side protocol bug. pending_relpaths = {p.relpath for p in projects_to_sync} if previously_pending_relpaths == pending_relpaths: + stalled_projects_str = "\n".join( + f" - {path}" + for path in sorted(list(pending_relpaths)) + ) logger.error( - "Stall detected in interleaved sync, not all " - "projects could be synced." + "The following projects failed and could not " + "be synced:\n%s", + stalled_projects_str, ) err_event.set() + + # Include these in the final error report. + self._interleaved_err_checkout = True + self._interleaved_err_checkout_results.extend( + list(pending_relpaths) + ) break previously_pending_relpaths = pending_relpaths @@ -2570,6 +2581,7 @@ later is required to fix a server side protocol bug. manifest=manifest, all_manifests=not opt.this_manifest_only, ) + pm.update_total(len(project_list)) finally: sync_event.set() sync_progress_thread.join() -- cgit v1.2.3-54-g00ecf