Mercurial > hg
changeset 3609:a969e81631ce
hgweb: if the server supports it, send a compressed bundle
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Wed, 01 Nov 2006 22:01:30 +0100 |
parents | 802da51cab5b |
children | 44cd1eb72fd7 |
files | mercurial/httprepo.py |
diffstat | 1 files changed, 21 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/httprepo.py Wed Nov 01 14:53:11 2006 -0300 +++ b/mercurial/httprepo.py Wed Nov 01 22:01:30 2006 +0100 @@ -337,11 +337,31 @@ # have to stream bundle to a temp file because we do not have # http 1.1 chunked transfer. + use_compress = 'standardbundle' in self.capabilities + + # XXX duplication from commands.py + class nocompress(object): + def compress(self, x): + return x + def flush(self): + return "" + + if use_compress: + header = "HG10GZ" + z = zlib.compressobj() + else: + self.ui.note(_("server has no compression support, " + "sending uncompressed")) + header = "" + z = nocompress() + fd, tempname = tempfile.mkstemp(prefix='hg-unbundle-') fp = os.fdopen(fd, 'wb+') try: + fp.write(header) for chunk in util.filechunkiter(cg): - fp.write(chunk) + fp.write(z.compress(chunk)) + fp.write(z.flush()) length = fp.tell() try: rfp = self.do_cmd(