httpconnection: make sure to clear progress of httpsendfile at EOF
read() should never raise EOFError. If it did, UnboundLocalError would occur
due to unassigned 'ret' variable.
This issue was originally reported to TortoiseHg:
https://bitbucket.org/tortoisehg/thg/issues/4707/
--- a/mercurial/httpconnection.py Tue Mar 14 18:23:59 2017 +0900
+++ b/mercurial/httpconnection.py Sat Mar 18 16:02:14 2017 +0900
@@ -44,10 +44,10 @@
self._total = self.length // 1024 * 2
def read(self, *args, **kwargs):
- try:
- ret = self._data.read(*args, **kwargs)
- except EOFError:
+ ret = self._data.read(*args, **kwargs)
+ if not ret:
self.ui.progress(_('sending'), None)
+ return ret
self._pos += len(ret)
# We pass double the max for total because we currently have
# to send the bundle twice in the case of a server that