annotate tests/test-encode @ 2079:ee96ca273f32

New lazy index code for revlogs. This tunes for large repositories. It does not read the whole index file in one big chunk, but tries to buffer reads in more reasonable chunks instead. Search speeds are improved in two ways. When trying to find a specific sha hash, it searches from the end of the file backward. More recent entries are more likely to be relevant, especially the tip. Also, this can load only the mapping of nodes to revlog index number. Loading the map uses less cpu (no struct.unpack) and much less memory than loading both the map and the index. This cuts down the time for hg tip on the 80,000 changeset kernel repo from 1.8s to 3.69s. Most commands the pull a single rev out of a big index get roughly the same benefit. Commands that read the whole index are not slower.
author mason@suse.com
date Tue, 04 Apr 2006 16:47:12 -0400
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