view tests/test-clone-r.out @ 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 ced2d3620f95
children 3053fc33f545
line wrap: on
line source

   rev    offset  length   base linkrev nodeid       p1           p2
     0         0       3      0       0 362fef284ce2 000000000000 000000000000
     1         3       5      1       1 125144f7e028 362fef284ce2 000000000000
     2         8       7      2       2 4c982badb186 125144f7e028 000000000000
     3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
   rev    offset  length   base linkrev nodeid       p1           p2
     0         0      75      0       7 905359268f77 000000000000 000000000000
   rev    offset  length   base linkrev nodeid       p1           p2
     0         0      75      0       8 905359268f77 000000000000 000000000000
   rev    offset  length   base linkrev nodeid       p1           p2
     0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
   rev    offset  length   base linkrev nodeid       p1           p2
     0         0      48      0       0 43eadb1d2d06 000000000000 000000000000
     1        48      48      1       1 8b89697eba2c 43eadb1d2d06 000000000000
     2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
     3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
     4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
4 files, 9 changesets, 7 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 1 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 2 changesets, 2 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 1 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 3 changesets, 3 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 4 changes to 1 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 4 changesets, 4 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 1 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 2 changesets, 2 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 1 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 3 changesets, 3 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 5 changes to 2 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 4 changesets, 5 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 5 changesets with 6 changes to 3 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
3 files, 5 changesets, 6 total revisions
requesting all changes
adding changesets
adding manifests
adding file changes
added 5 changesets with 5 changes to 2 files
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 5 changesets, 5 total revisions
pulling from ../test-7
searching for changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 2 changes to 3 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
4 files, 9 changesets, 7 total revisions