diff --git a/mercurial/keepalive.py b/mercurial/keepalive.py --- a/mercurial/keepalive.py +++ b/mercurial/keepalive.py @@ -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.