Mercurial > public > mercurial-scm > hg-stable
diff mercurial/changegroup.py @ 12335:e21fe9c5fb25
bundle: get rid of chunkiter
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 19 Sep 2010 12:51:54 -0500 |
parents | 50946802593d |
children | 9d234f7d8a77 |
line wrap: on
line diff
--- a/mercurial/changegroup.py Sun Sep 19 12:38:44 2010 -0500 +++ b/mercurial/changegroup.py Sun Sep 19 12:51:54 2010 -0500 @@ -24,17 +24,6 @@ % (len(d), l - 4)) return d -def chunkiter(source, progress=None): - """iterate through the chunks in source, yielding a sequence of chunks - (strings)""" - while 1: - c = getchunk(source) - if not c: - break - elif progress is not None: - progress() - yield c - def chunkheader(length): """return a changegroup chunk header (string)""" return struct.pack(">l", length + 4) @@ -94,15 +83,18 @@ # parse the changegroup data, otherwise we will block # in case of sshrepo because we don't know the end of the stream - # an empty chunkiter is the end of the changegroup - # a changegroup has at least 2 chunkiters (changelog and manifest). - # after that, an empty chunkiter is the end of the changegroup + # an empty chunkgroup is the end of the changegroup + # a changegroup has at least 2 chunkgroups (changelog and manifest). + # after that, an empty chunkgroup is the end of the changegroup empty = False count = 0 while not empty or count <= 2: empty = True count += 1 - for chunk in chunkiter(cg): + while 1: + chunk = getchunk(cg) + if not chunk: + break empty = False fh.write(z.compress(chunkheader(len(chunk)))) pos = 0 @@ -171,13 +163,6 @@ % (len(d), l)) return d - def chunks(self): - while 1: - c = self.chunk() - if not c: - break - yield c - class headerlessfixup(object): def __init__(self, fh, h): self._h = h