sapling/tests/test-ancestor.py.out
Siddharth Agarwal 4fdbea480f ancestor: add lazy membership testing to lazyancestors
This also makes the perfancestorset command use lazy membership testing. In a
linear repository with over 400,000 commits, without this patch, hg
perfancestorset takes 0.80 seconds no matter how far behind we're looking.
With this patch, hg perfancestorset -- X takes:

    Rev X       Time
       -1      0.00s
    -4000      0.01s
   -20000      0.04s
   -80000      0.17s
  -200000      0.43s
  -300000      0.69s
        0      0.88s

Thus, for revisions close to tip, we're up to several orders of magnitude
faster. At 0 we're around 10% slower.
2012-12-18 12:47:20 -08:00

47 lines
1.2 KiB
Plaintext

% ancestors of [] and not of [1]
[]
% ancestors of [] and not of []
[]
% ancestors of [12] and not of []
[0, 1, 2, 4, 6, 7, 9, 12]
% ancestors of [0] and not of [0]
[]
% ancestors of [4, 5, 6] and not of [6, 5, 4]
[]
% ancestors of [-1] and not of [12]
[]
% ancestors of [12] and not of [-1]
[0, 1, 2, 4, 6, 7, 9, 12]
% ancestors of [12] and not of [9]
[12]
% ancestors of [9] and not of [12]
[]
% ancestors of [12, 9] and not of [7]
[6, 9, 12]
% ancestors of [7, 6] and not of [12]
[]
% ancestors of [10] and not of [11, 12]
[5, 10]
% ancestors of [11] and not of [10]
[3, 7, 11]
% ancestors of [11] and not of [10, 12]
[3, 11]
% ancestors of [12] and not of [10]
[6, 7, 9, 12]
% ancestors of [12] and not of [11]
[6, 9, 12]
% ancestors of [10, 11, 12] and not of [13]
[0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12]
% ancestors of [13] and not of [10, 11, 12]
[8, 13]
% lazy ancestor set for [], stoprev = 0, inclusive = False
[]
% lazy ancestor set for [11, 13], stoprev = 0, inclusive = False
[7, 8, 3, 4, 1, 0]
% lazy ancestor set for [11, 13], stoprev = 0, inclusive = True
[11, 13, 7, 8, 3, 4, 1, 0]
% lazy ancestor set for [11, 13], stoprev = 6, inclusive = False
[7, 8]
% lazy ancestor set for [11, 13], stoprev = 6, inclusive = True
[11, 13, 7, 8]