annotate tests/test-encode @ 2577:fa76c5d609c9

bdiff: improve worst case behavior by 100x. on 5.8MB (244.000 lines) text file with similar lines, hash before this change made diff against empty file take 75 seconds. this change improves performance to 0.6 seconds. result is that clone of smallish repo (137MB) with some files like this takes 1 minute instead of 10 minutes. common case of diff is 10% slower now, probably because of worse cache locality. but diff does not affect overall performance in common case (less than 1% of runtime is in diff when it is working ok), so this tradeoff looks good.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Fri, 07 Jul 2006 15:02:55 -0700
parents 7544700fd931
children c0b449154a90
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1258
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
1 #!/bin/sh
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
2
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
3 hg init
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
4
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
5 cat > .hg/hgrc <<EOF
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
6 [encode]
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
7 *.gz = gunzip
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
8
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
9 [decode]
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
10 *.gz = gzip
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
11
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
12 EOF
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
13
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
14 echo "this is a test" | gzip > a.gz
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
15 hg add a.gz
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1258
diff changeset
16 hg ci -m "test" -d "1000000 0"
1258
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
17 echo %% no changes
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
18 hg status
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
19 touch a.gz
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
20
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
21 echo %% no changes
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
22 hg status
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
23
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
24 echo %% uncompressed contents in repo
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
25 hg debugdata .hg/data/a.gz.d 0
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
26
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
27 echo %% uncompress our working dir copy
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
28 gunzip < a.gz
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
29
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
30 rm a.gz
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
31 hg co
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
32
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
33 echo %% uncompress our new working dir copy
1945754e466b Add file encoding/decoding support
mpm@selenic.com
parents:
diff changeset
34 gunzip < a.gz