diff mercurial/streamclone.py @ 52700:061bfd699a56

stream: use an utility function to report transferred bytes We do the same things in multiple place and it is starting to itch.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 28 Nov 2024 11:05:02 +0100
parents 10e7adbffa8c
children 6feb3b3029b5
line wrap: on
line diff
--- a/mercurial/streamclone.py	Mon Jan 06 20:32:31 2025 -0500
+++ b/mercurial/streamclone.py	Thu Nov 28 11:05:02 2024 +0100
@@ -255,6 +255,20 @@
     return repo.store.walk(matcher, phase=phase, obsolescence=obsolescence)
 
 
+def _report_transferred(repo, start_time: float, byte_count: int):
+    """common utility to report time it took to download the stream bundle"""
+    elapsed = util.timer() - start_time
+    if elapsed <= 0:
+        elapsed = 0.001
+    m = _(b'transferred %s in %.1f seconds (%s/sec)\n')
+    m %= (
+        util.bytecount(byte_count),
+        elapsed,
+        util.bytecount(byte_count / elapsed),
+    )
+    repo.ui.status(m)
+
+
 def generatev1(repo) -> tuple[int, int, Iterator[bytes]]:
     """Emit content for version 1 of a streaming clone.
 
@@ -470,18 +484,8 @@
             # streamclone-ed file at next access
             repo.invalidate(clearfilecache=True)
 
-        elapsed = util.timer() - start
-        if elapsed <= 0:
-            elapsed = 0.001
         progress.complete()
-        repo.ui.status(
-            _(b'transferred %s in %.1f seconds (%s/sec)\n')
-            % (
-                util.bytecount(bytecount),
-                elapsed,
-                util.bytecount(bytecount / elapsed),
-            )
-        )
+        _report_transferred(repo, start, bytecount)
 
 
 def readbundle1header(fp) -> tuple[int, int, Set[bytes]]:
@@ -1103,17 +1107,7 @@
             # streamclone-ed file at next access
             repo.invalidate(clearfilecache=True)
 
-        elapsed = util.timer() - start
-        if elapsed <= 0:
-            elapsed = 0.001
-        repo.ui.status(
-            _(b'transferred %s in %.1f seconds (%s/sec)\n')
-            % (
-                util.bytecount(progress.pos),
-                elapsed,
-                util.bytecount(progress.pos / elapsed),
-            )
-        )
+        _report_transferred(repo, start, progress.pos)
         progress.complete()
 
 
@@ -1179,14 +1173,7 @@
             # streamclone-ed file at next access
             repo.invalidate(clearfilecache=True)
 
-        elapsed = util.timer() - start
-        if elapsed <= 0:
-            elapsed = 0.001
-        msg = _(b'transferred %s in %.1f seconds (%s/sec)\n')
-        byte_count = util.bytecount(bytes_transferred)
-        bytes_sec = util.bytecount(bytes_transferred / elapsed)
-        msg %= (byte_count, elapsed, bytes_sec)
-        repo.ui.status(msg)
+        _report_transferred(repo, start, bytes_transferred)
         progress.complete()