Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-merge6 @ 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 | a74586023196 |
children |
line wrap: on
line source
#!/bin/sh cat <<EOF > merge import sys, os print "merging for", os.path.basename(sys.argv[1]) EOF HGMERGE="python ../merge"; export HGMERGE mkdir A1 cd A1 hg init echo This is file foo1 > foo echo This is file bar1 > bar hg add foo bar hg commit -m "commit text" -d "1000000 0" cd .. hg clone A1 B1 cd A1 rm bar hg remove bar hg commit -m "commit test" -d "1000000 0" cd ../B1 echo This is file foo22 > foo hg commit -m "commit test" -d "1000000 0" cd .. hg clone A1 A2 hg clone B1 B2 cd A1 hg pull ../B1 hg merge hg commit -m "commit test" -d "1000000 0" echo bar should remain deleted. hg manifest --debug cd ../B2 hg pull ../A2 hg merge hg commit -m "commit test" -d "1000000 0" echo bar should remain deleted. hg manifest --debug