Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-merge-symlinks @ 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 | 36794dbe66a3 |
children |
line wrap: on
line source
#!/bin/sh cat > echo.py <<EOF #!/usr/bin/env python import os for k in ('HG_FILE', 'HG_MY_ISLINK', 'HG_OTHER_ISLINK', 'HG_BASE_ISLINK'): print k, os.environ[k] EOF # Create 2 heads containing the same file, once as # a file, once as a link. Bundle was generated with: # # hg init t # cd t # echo a > a # hg ci -qAm t0 -d '0 0' # echo l > l # hg ci -qAm t1 -d '1 0' # hg up -C 0 # ln -s a l # hg ci -qAm t2 -d '2 0' # echo l2 > l2 # hg ci -qAm t3 -d '3 0' hg init t cd t hg -q pull "$TESTDIR/test-merge-symlinks.hg" hg up -C 3 # Merge them and display *_ISLINK vars echo % merge heads HGMERGE="python ../echo.py" hg merge # Test working directory symlink bit calculation wrt copies, # especially on non-supporting systems. echo % merge working directory hg up -C 2 hg copy l l2 HGMERGE="python ../echo.py" hg up 3