summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Mak <gavinmak@google.com>2023-05-24 21:28:28 +0000
committerLUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-05-25 17:26:22 +0000
commit04cba4add52b11a27d09d73c2cbfebcd67a1f2cc (patch)
tree309e74c574545d6dcb269a8bd37ac3232ac3c6af
parent3eacfdf3090a961ada4ebeb8e28f0782eac4c9d8 (diff)
downloadgit-repo-2.34.tar.gz
git-repo-2.34.zip
sync: Show number of running fetch jobsv2.34
Last of the recent `repo sync` UX changes. Show number of fetch jobs eg: "Fetching: 3% (8/251) 0:03 | 8 jobs | 0:01 chromiumos/overlays/chrom.." Bug: https://crbug.com/gerrit/11293 Change-Id: I1b3dcf3e56ae6731c6c6cb73cfce069b2f374b69 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/374920 Reviewed-by: Josip Sokcevic <sokcevic@google.com> Commit-Queue: Gavin Mak <gavinmak@google.com> Tested-by: Gavin Mak <gavinmak@google.com> Reviewed-by: Joanna Wang <jojwang@google.com>
-rw-r--r--progress.py9
-rw-r--r--subcmds/sync.py9
2 files changed, 10 insertions, 8 deletions
diff --git a/progress.py b/progress.py
index 6686ad4ae..69c959279 100644
--- a/progress.py
+++ b/progress.py
@@ -76,6 +76,10 @@ def elapsed_str(total):
return ret
+def jobs_str(total):
+ return f"{total} job{'s' if total > 1 else ''}"
+
+
class Progress(object):
def __init__(
self,
@@ -170,10 +174,7 @@ class Progress(object):
else:
p = (100 * self._done) / self._total
if self._show_jobs:
- jobs = "[%d job%s] " % (
- self._active,
- "s" if self._active > 1 else "",
- )
+ jobs = f"[{jobs_str(self._active)}] "
else:
jobs = ""
if self._show_elapsed:
diff --git a/subcmds/sync.py b/subcmds/sync.py
index da9918b97..a44ed5b4c 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -66,7 +66,7 @@ from command import (
from error import RepoChangedException, GitError
import platform_utils
from project import SyncBuffer
-from progress import Progress, elapsed_str
+from progress import Progress, elapsed_str, jobs_str
from repo_trace import Trace
import ssh
from wrapper import Wrapper
@@ -673,7 +673,7 @@ later is required to fix a server side protocol bug.
def _FetchInitChild(cls, ssh_proxy):
cls.ssh_proxy = ssh_proxy
- def _GetLongestSyncMessage(self):
+ def _GetSyncProgressMessage(self):
if len(self._sync_dict) == 0:
return None
@@ -685,7 +685,8 @@ later is required to fix a server side protocol bug.
earliest_proj = project
elapsed = time.time() - earliest_time
- return f"{elapsed_str(elapsed)} {earliest_proj}"
+ jobs = jobs_str(len(self._sync_dict))
+ return f"{jobs} | {elapsed_str(elapsed)} {earliest_proj}"
def _Fetch(self, projects, opt, err_event, ssh_proxy):
ret = True
@@ -707,7 +708,7 @@ later is required to fix a server side protocol bug.
def _MonitorSyncLoop():
while True:
- pm.update(inc=0, msg=self._GetLongestSyncMessage())
+ pm.update(inc=0, msg=self._GetSyncProgressMessage())
if sync_event.wait(timeout=1):
return