Mercurial > evolve
changeset 853:b82b49189328
exchange: add progress bar when pulling using wire protocol command
progress bar on pull was only available for pushkey based pull before this
changeset.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 03 Mar 2014 22:18:05 -0800 |
parents | aa722de36179 |
children | 86b826399dfd |
files | hgext/evolve.py |
diffstat | 1 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/evolve.py Mon Mar 03 21:37:18 2014 -0800 +++ b/hgext/evolve.py Mon Mar 03 22:18:05 2014 -0800 @@ -2249,7 +2249,18 @@ f = self._callstream("evoext_pullobsmarkers_0", **opts) f = self._decompress(f) length= int(f.read(20)) - return StringIO(f.read(length)) + chunk = 4096 + current = 0 + data = StringIO() + ui = self.ui + ui.progress('OBSEXC', current, unit="bytes", total=length) + while current < length: + readsize = min(length-current, chunk) + data.write(f.read(readsize)) + current += readsize + ui.progress('OBSEXC', current, unit="bytes", total=length) + ui.progress('OBSEXC', None) + return data @eh.addattr(localrepo.localpeer, 'evoext_pullobsmarkers_0') def local_pullobsmarkers(self, heads=None, common=None):