Mercurial > hg
annotate tests/test-patch @ 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 | 0de7e6e27fe4 |
children |
rev | line source |
---|---|
4645
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
1 #!/bin/sh |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
2 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
3 cat > patchtool.py <<EOF |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
4 import sys |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
5 print 'Using custom patch' |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
6 if '--binary' in sys.argv: |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
7 print '--binary found !' |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
8 EOF |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
9 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
10 echo "[ui]" >> $HGRCPATH |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
11 echo "patch=python ../patchtool.py" >> $HGRCPATH |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
12 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
13 hg init a |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
14 cd a |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
15 echo a > a |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
16 hg commit -Ama -d '1 0' |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
17 echo b >> a |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
18 hg commit -Amb -d '2 0' |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
19 cd .. |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
20 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
21 # This test check that: |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
22 # - custom patch commands with arguments actually works |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
23 # - patch code does not try to add weird arguments like |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
24 # --binary when custom patch commands are used. For instance |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
25 # --binary is added by default under win32. |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
26 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
27 echo % check custom patch options are honored |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
28 hg --cwd a export -o ../a.diff tip |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
29 hg clone -r 0 a b |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
30 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
31 hg --cwd b import -v ../a.diff |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
32 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
33 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
34 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
35 |
0de7e6e27fe4
Add tests for ui.patch regression.
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
36 |