Mercurial > hg
view tests/test-static-http @ 5451:0a43875677b1
revlog: break up compression of large deltas
Python's zlib apparently makes an internal copy of strings passed to
compress(). To avoid this, compress strings 1M at a time, then join
them at the end if the result would be smaller than the original.
For initial commits of large but compressible files, this cuts peak
memory usage nearly in half.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 11 Oct 2007 00:46:54 -0500 |
parents | e3a0c092b4e2 |
children | 6605a03cbf87 |
line wrap: on
line source
#!/bin/sh cp "$TESTDIR"/printenv.py . http_proxy= hg clone static-http://localhost:$HGPORT/ copy echo $? test -d copy || echo copy: No such file or directory # This server doesn't do range requests so it's basically only good for # one pull cat > dumb.py <<EOF import BaseHTTPServer, SimpleHTTPServer, os, signal def run(server_class=BaseHTTPServer.HTTPServer, handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler): server_address = ('localhost', int(os.environ['HGPORT'])) httpd = server_class(server_address, handler_class) httpd.serve_forever() signal.signal(signal.SIGTERM, lambda x: sys.exit(0)) run() EOF python dumb.py 2>/dev/null & echo $! >> $DAEMON_PIDS mkdir remote cd remote hg init echo foo > bar hg add bar hg commit -m"test" -d "1000000 0" hg tip cd .. http_proxy= hg clone static-http://localhost:$HGPORT/remote local | sed -e 's,:[0-9][0-9]*/,/,' cd local hg verify cat bar cd ../remote echo baz > quux hg commit -A -mtest2 -d '100000000 0' cd ../local echo '[hooks]' >> .hg/hgrc echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc http_proxy= hg pull | sed -e 's,:[0-9][0-9]*/,/,' echo '% test with "/" URI (issue 747)' cd .. hg init echo a > a hg add a hg ci -ma http_proxy= hg clone static-http://localhost:$HGPORT/ local2 | sed -e 's,:[0-9][0-9]*/,/,' cd local2 hg verify cat a hg paths | sed -e 's,:[0-9][0-9]*/,/,' kill $!