mercurial/localrepo.py
changeset 1199 78ceaf83f28f
parent 1133 899b619a7eb2
child 1233 5381b0d88e9e
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -888,21 +888,7 @@ class localrepository:
         return remote.addchangegroup(cg)
 
     def changegroup(self, basenodes):
-        class genread:
-            def __init__(self, generator):
-                self.g = generator
-                self.buf = ""
-            def fillbuf(self):
-                self.buf += "".join(self.g)
-
-            def read(self, l):
-                while l > len(self.buf):
-                    try:
-                        self.buf += self.g.next()
-                    except StopIteration:
-                        break
-                d, self.buf = self.buf[:l], self.buf[l:]
-                return d
+        genread = util.chunkbuffer
 
         def gengroup():
             nodes = self.newer(basenodes)