tests/test-bisect2.out
author David Greenaway <hg-dev@davidgreenaway.com>
Sat, 03 Apr 2010 11:58:16 +1100
changeset 11060 e6df01776e08
parent 9583 0491be4448bf
permissions -rw-r--r--
findrenames: Optimise "addremove -s100" by matching files by their SHA1 hashes. We speed up 'findrenames' for the usecase when a user specifies they want a similarity of 100% by matching files by their exact SHA1 hash value. This reduces the number of comparisons required to find exact matches from O(n^2) to O(n). While it would be nice if we could just use mercurial's pre-calculated SHA1 hash for existing files, this hash includes the file's ancestor information making it unsuitable for our purposes. Instead, we calculate the hash of old content from scratch. The following benchmarks were taken on the current head of crew: addremove 100% similarity: rm -rf *; hg up -C; mv tests tests.new hg --time addremove -s100 --dry-run before: real 176.350 secs (user 128.890+0.000 sys 47.430+0.000) after: real 2.130 secs (user 1.890+0.000 sys 0.240+0.000) addremove 75% similarity: rm -rf *; hg up -C; mv tests tests.new; \ for i in tests.new/*; do echo x >> $i; done hg --time addremove -s75 --dry-run before: real 264.560 secs (user 215.130+0.000 sys 49.410+0.000) after: real 218.710 secs (user 172.790+0.000 sys 45.870+0.000)

% init
% committing changes
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
created new head
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
created new head
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
created new head
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
% log
changeset:   18:d42e18c7bc9b
tag:         tip
parent:      15:857b178a7cf3
user:        test
date:        Thu Jan 01 00:00:18 1970 +0000
summary:     18

changeset:   17:228c06deef46
user:        test
date:        Thu Jan 01 00:00:17 1970 +0000
summary:     17

changeset:   16:609d82a7ebae
user:        test
date:        Thu Jan 01 00:00:16 1970 +0000
summary:     16

changeset:   15:857b178a7cf3
parent:      13:b0a32c86eb31
parent:      10:429fcd26f52d
user:        test
date:        Thu Jan 01 00:00:15 1970 +0000
summary:     merge 10,13

changeset:   14:faa450606157
parent:      11:82ca6f06eccd
user:        test
date:        Thu Jan 01 00:00:14 1970 +0000
summary:     14

changeset:   13:b0a32c86eb31
user:        test
date:        Thu Jan 01 00:00:13 1970 +0000
summary:     13

changeset:   12:9f259202bbe7
user:        test
date:        Thu Jan 01 00:00:12 1970 +0000
summary:     12

changeset:   11:82ca6f06eccd
parent:      8:dab8161ac8fc
user:        test
date:        Thu Jan 01 00:00:11 1970 +0000
summary:     11

changeset:   10:429fcd26f52d
parent:      9:3c77083deb4a
parent:      6:a214d5d3811a
user:        test
date:        Thu Jan 01 00:00:10 1970 +0000
summary:     merge 6,9

changeset:   9:3c77083deb4a
user:        test
date:        Thu Jan 01 00:00:09 1970 +0000
summary:     9

changeset:   8:dab8161ac8fc
parent:      1:4ca5088da217
user:        test
date:        Thu Jan 01 00:00:08 1970 +0000
summary:     8

changeset:   7:50c76098bbf2
parent:      4:5c668c22234f
user:        test
date:        Thu Jan 01 00:00:07 1970 +0000
summary:     7

changeset:   6:a214d5d3811a
parent:      5:385a529b6670
parent:      4:5c668c22234f
user:        test
date:        Thu Jan 01 00:00:06 1970 +0000
summary:     merge 4,5

changeset:   5:385a529b6670
parent:      2:051e12f87bf1
user:        test
date:        Thu Jan 01 00:00:05 1970 +0000
summary:     5

changeset:   4:5c668c22234f
user:        test
date:        Thu Jan 01 00:00:04 1970 +0000
summary:     4

changeset:   3:0950834f0a9c
user:        test
date:        Thu Jan 01 00:00:03 1970 +0000
summary:     3

changeset:   2:051e12f87bf1
user:        test
date:        Thu Jan 01 00:00:02 1970 +0000
summary:     2

changeset:   1:4ca5088da217
user:        test
date:        Thu Jan 01 00:00:01 1970 +0000
summary:     1

changeset:   0:33b1f9bc8bc5
user:        test
date:        Thu Jan 01 00:00:00 1970 +0000
summary:     0

% hg up -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
% complex bisect test 1
Testing changeset 6:a214d5d3811a (15 changesets remaining, ~3 tests)
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
Testing changeset 13:b0a32c86eb31 (9 changesets remaining, ~3 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 10:429fcd26f52d (9 changesets remaining, ~3 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 8:dab8161ac8fc (3 changesets remaining, ~1 tests)
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 9:3c77083deb4a (2 changesets remaining, ~1 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
The first bad revision is:
changeset:   9:3c77083deb4a
user:        test
date:        Thu Jan 01 00:00:09 1970 +0000
summary:     9

% complex bisect test 2
Testing changeset 6:a214d5d3811a (13 changesets remaining, ~3 tests)
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 10:429fcd26f52d (13 changesets remaining, ~3 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Testing changeset 12:9f259202bbe7 (5 changesets remaining, ~2 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 13:b0a32c86eb31 (3 changesets remaining, ~1 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
The first good revision is:
changeset:   13:b0a32c86eb31
user:        test
date:        Thu Jan 01 00:00:13 1970 +0000
summary:     13

% complex bisect test 3
Testing changeset 6:a214d5d3811a (13 changesets remaining, ~3 tests)
2 files updated, 0 files merged, 2 files removed, 0 files unresolved
Testing changeset 13:b0a32c86eb31 (8 changesets remaining, ~3 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 10:429fcd26f52d (8 changesets remaining, ~3 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 12:9f259202bbe7 (8 changesets remaining, ~3 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 9:3c77083deb4a (5 changesets remaining, ~2 tests)
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 15:857b178a7cf3 (5 changesets remaining, ~2 tests)
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Due to skipped revisions, the first bad revision could be any of:
changeset:   9:3c77083deb4a
user:        test
date:        Thu Jan 01 00:00:09 1970 +0000
summary:     9

changeset:   10:429fcd26f52d
parent:      9:3c77083deb4a
parent:      6:a214d5d3811a
user:        test
date:        Thu Jan 01 00:00:10 1970 +0000
summary:     merge 6,9

changeset:   13:b0a32c86eb31
user:        test
date:        Thu Jan 01 00:00:13 1970 +0000
summary:     13

changeset:   15:857b178a7cf3
parent:      13:b0a32c86eb31
parent:      10:429fcd26f52d
user:        test
date:        Thu Jan 01 00:00:15 1970 +0000
summary:     merge 10,13

% complex bisect test 4
Testing changeset 13:b0a32c86eb31 (8 changesets remaining, ~3 tests)
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 10:429fcd26f52d (5 changesets remaining, ~2 tests)
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
Testing changeset 15:857b178a7cf3 (3 changesets remaining, ~1 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Testing changeset 16:609d82a7ebae (3 changesets remaining, ~1 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Due to skipped revisions, the first good revision could be any of:
changeset:   15:857b178a7cf3
parent:      13:b0a32c86eb31
parent:      10:429fcd26f52d
user:        test
date:        Thu Jan 01 00:00:15 1970 +0000
summary:     merge 10,13

changeset:   16:609d82a7ebae
user:        test
date:        Thu Jan 01 00:00:16 1970 +0000
summary:     16

changeset:   17:228c06deef46
user:        test
date:        Thu Jan 01 00:00:17 1970 +0000
summary:     17