view tests/test-copy.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 7544700fd931
children 3053fc33f545
line wrap: on
line source

A b
b
 b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
we should see two history entries
changeset:   1:386a3cc01532710ca78aed9a54fa2f459c04f29c
tag:         tip
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
files:       b
description:
2


changeset:   0:33aaa84a386bd609094aeb21a97c09436c482ef1
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
files:       a
description:
1


we should see one log entry for a
changeset:   0:33aaa84a386b
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     1

this should show a revision linked to changeset 0
   rev    offset  length   base linkrev nodeid       p1           p2
     0         0       3      0       0 b789fdd96dc2 000000000000 000000000000
we should see one log entry for b
changeset:   1:386a3cc01532
tag:         tip
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     2

this should show a revision linked to changeset 1
   rev    offset  length   base linkrev nodeid       p1           p2
     0         0      65      0       1 9a263dd772e0 000000000000 000000000000
this should show the rename information in the metadata
copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
copy: a
566e338d09a089ba737c21e0d3759980  .hg/data/b.d
60b725f10c9c85c70d97880dfe8191b3  bsum
60b725f10c9c85c70d97880dfe8191b3  asum
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 2 changesets, 2 total revisions