Mercurial > public > mercurial-scm > evolve
diff hgext/evolve.py @ 877:cf35f38d6a10
exchange: fix changeset pulling over http
http compress its stream. The were building a bogus stream where the first 10
bytes where uncompressed. Confusing the client.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 10 Mar 2014 21:35:54 -0700 |
parents | 10867a8e27c6 |
children | 85b3d54516a7 |
line wrap: on
line diff
--- a/hgext/evolve.py Mon Mar 10 22:08:21 2014 -0700 +++ b/hgext/evolve.py Mon Mar 10 21:35:54 2014 -0700 @@ -2316,12 +2316,12 @@ if k in ('heads', 'common'): opts[k] = wireproto.decodelist(v) obsdata = _getobsmarkersstream(repo, **opts) - length = '%20i' % len(obsdata.getvalue()) - def data(): - yield length - for c in proto.groupchunks(obsdata): - yield c - return wireproto.streamres(data()) + finaldata = StringIO() + obsdata = obsdata.getvalue() + finaldata.write('%20i' % len(obsdata)) + finaldata.write(obsdata) + finaldata.seek(0) + return wireproto.streamres(proto.groupchunks(finaldata)) def _obsrelsethashtree(repo): cache = []