Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-encode @ 1534:80a3d6a0af71
Optimize manifest.add
Testing shows that manifest.add is spending a significant percentage of
its time running calcoffsets and doing text = "".join(addlist). This
patch removes the need for both of these by storying the manifest in a
character array, and using a modified bisect search to find lines without
the help of a separate index of line offsets.
manifest.add was also reworked to push delta construction/combination into the
main loop.
Time to apply 2751 patches (without psyco, ext3 noatime,data=writeback):
Stock hg: 4m45s real 3m32s user 55s sys
patched: 2m48s real 1m53s user 43s sys
quilt: 2m30s real 45s user 50s sys
(quilt does much more io...)
author | mason@suse.com |
---|---|
date | Fri, 11 Nov 2005 18:20:22 -0800 |
parents | 1945754e466b |
children | 7544700fd931 |
rev | line source |
---|---|
1258 | 1 #!/bin/sh |
2 | |
3 hg init | |
4 | |
5 cat > .hg/hgrc <<EOF | |
6 [encode] | |
7 *.gz = gunzip | |
8 | |
9 [decode] | |
10 *.gz = gzip | |
11 | |
12 EOF | |
13 | |
14 echo "this is a test" | gzip > a.gz | |
15 hg add a.gz | |
16 hg ci -m "test" -d "0 0" | |
17 echo %% no changes | |
18 hg status | |
19 touch a.gz | |
20 | |
21 echo %% no changes | |
22 hg status | |
23 | |
24 echo %% uncompressed contents in repo | |
25 hg debugdata .hg/data/a.gz.d 0 | |
26 | |
27 echo %% uncompress our working dir copy | |
28 gunzip < a.gz | |
29 | |
30 rm a.gz | |
31 hg co | |
32 | |
33 echo %% uncompress our new working dir copy | |
34 gunzip < a.gz |