# HG changeset patch # User Pierre-Yves David # Date 1394512554 25200 # Node ID cf35f38d6a1020d220526692ab23612cf2976482 # Parent 8c9601a6c4e0bab3406dccc64862f49f646701e9 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. diff -r 8c9601a6c4e0 -r cf35f38d6a10 hgext/evolve.py --- 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 = [] diff -r 8c9601a6c4e0 -r cf35f38d6a10 hgext/simple4server.py --- a/hgext/simple4server.py Mon Mar 10 22:08:21 2014 -0700 +++ b/hgext/simple4server.py Mon Mar 10 21:35:54 2014 -0700 @@ -145,12 +145,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)) # from evolve extension: 1a23c7c52a43