httpconnection: allow `httpsendfile` subclasses to suppress the progressbar
authorMatt Harbison <matt_harbison@yahoo.com>
Tue, 21 Jan 2020 10:24:32 -0500
changeset 44298 0e8b28fb751b
parent 44297 cf1f8660e568
child 44301 4caac36c66bc
httpconnection: allow `httpsendfile` subclasses to suppress the progressbar This will be neccessary for LFS, which manages the progressbar outside of the file. Differential Revision: https://phab.mercurial-scm.org/D7960
mercurial/httpconnection.py
--- a/mercurial/httpconnection.py	Mon Feb 10 21:54:12 2020 +0100
+++ b/mercurial/httpconnection.py	Tue Jan 21 10:24:32 2020 -0500
@@ -39,12 +39,15 @@
         self.write = self._data.write
         self.length = os.fstat(self._data.fileno()).st_size
         self._pos = 0
+        self._progress = self._makeprogress()
+
+    def _makeprogress(self):
         # We pass double the max for total because we currently have
         # to send the bundle twice in the case of a server that
         # requires authentication. Since we can't know until we try
         # once whether authentication will be required, just lie to
         # the user and maybe the push succeeds suddenly at 50%.
-        self._progress = ui.makeprogress(
+        return self.ui.makeprogress(
             _(b'sending'), unit=_(b'kb'), total=(self.length // 1024 * 2)
         )