diff -r 78103e4138b1 -r 97eedbd5a56c mercurial/keepalive.py --- a/mercurial/keepalive.py Fri Mar 23 16:24:53 2018 -0700 +++ b/mercurial/keepalive.py Wed Mar 28 12:44:35 2018 -0700 @@ -349,7 +349,7 @@ class HTTPResponse(httplib.HTTPResponse): # we need to subclass HTTPResponse in order to - # 1) add readline() and readlines() methods + # 1) add readline(), readlines(), and readinto() methods # 2) add close_connection() methods # 3) add info() and geturl() methods @@ -522,6 +522,14 @@ break return list + def readinto(self, dest): + res = self.read(len(dest)) + if not res: + return 0 + + dest[0:len(res)] = res + return len(res) + def safesend(self, str): """Send `str' to the server.