# HG changeset patch # User Benoit Boissinot # Date 1162414890 -3600 # Node ID a969e81631ce34c26aa746f53967709abd5dc886 # Parent 802da51cab5bf27ea898b04f01e51a8f5366372c hgweb: if the server supports it, send a compressed bundle diff -r 802da51cab5b -r a969e81631ce mercurial/httprepo.py --- 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(