tests/test-stablerange.t
changeset 2228 3b18440cca74
parent 2207 f82a398162f5
child 2229 575561934439
equal deleted inserted replaced
2227:4b621b56e3a1 2228:3b18440cca74
    15 
    15 
    16   $ hg init repo_linear
    16   $ hg init repo_linear
    17   $ cd repo_linear
    17   $ cd repo_linear
    18   $ hg debugbuilddag '.+6'
    18   $ hg debugbuilddag '.+6'
    19   $ hg debugstablerange --rev 1
    19   $ hg debugstablerange --rev 1
    20   rev         node index size depth      obshash
    20            rev         node        index         size        depth      obshash
    21     1 66f7d451a68b     0    2     2 000000000000
    21              1 66f7d451a68b            0            2            2 000000000000
    22     0 1ea73414a91b     0    1     1 000000000000
    22              0 1ea73414a91b            0            1            1 000000000000
    23     1 66f7d451a68b     1    1     2 000000000000
    23              1 66f7d451a68b            1            1            2 000000000000
    24   $ hg debugstablerange --rev 1 > 1.range
    24   $ hg debugstablerange --rev 1 > 1.range
    25 
    25 
    26 bigger subset reuse most of the previous one
    26 bigger subset reuse most of the previous one
    27 
    27 
    28   $ hg debugstablerange --rev 4
    28   $ hg debugstablerange --rev 4
    29   rev         node index size depth      obshash
    29            rev         node        index         size        depth      obshash
    30     4 bebd167eb94d     0    5     5 000000000000
    30              4 bebd167eb94d            0            5            5 000000000000
    31     3 2dc09a01254d     0    4     4 000000000000
    31              3 2dc09a01254d            0            4            4 000000000000
    32     3 2dc09a01254d     2    2     4 000000000000
    32              3 2dc09a01254d            2            2            4 000000000000
    33     1 66f7d451a68b     0    2     2 000000000000
    33              1 66f7d451a68b            0            2            2 000000000000
    34     2 01241442b3c2     2    1     3 000000000000
    34              2 01241442b3c2            2            1            3 000000000000
    35     0 1ea73414a91b     0    1     1 000000000000
    35              0 1ea73414a91b            0            1            1 000000000000
    36     3 2dc09a01254d     3    1     4 000000000000
    36              3 2dc09a01254d            3            1            4 000000000000
    37     1 66f7d451a68b     1    1     2 000000000000
    37              1 66f7d451a68b            1            1            2 000000000000
    38     4 bebd167eb94d     4    1     5 000000000000
    38              4 bebd167eb94d            4            1            5 000000000000
    39   $ hg debugstablerange --rev 4 > 4.range
    39   $ hg debugstablerange --rev 4 > 4.range
    40   $ diff -u 1.range 4.range
    40   $ diff -u 1.range 4.range
    41   --- 1.range	* (glob)
    41   --- 1.range	* (glob)
    42   +++ 4.range	* (glob)
    42   +++ 4.range	* (glob)
    43   @@ -1,4 +1,10 @@
    43   @@ -1,4 +1,10 @@
    44    rev         node index size depth      obshash
    44             rev         node        index         size        depth      obshash
    45   +  4 bebd167eb94d     0    5     5 000000000000
    45   +           4 bebd167eb94d            0            5            5 000000000000
    46   +  3 2dc09a01254d     0    4     4 000000000000
    46   +           3 2dc09a01254d            0            4            4 000000000000
    47   +  3 2dc09a01254d     2    2     4 000000000000
    47   +           3 2dc09a01254d            2            2            4 000000000000
    48      1 66f7d451a68b     0    2     2 000000000000
    48               1 66f7d451a68b            0            2            2 000000000000
    49   +  2 01241442b3c2     2    1     3 000000000000
    49   +           2 01241442b3c2            2            1            3 000000000000
    50      0 1ea73414a91b     0    1     1 000000000000
    50               0 1ea73414a91b            0            1            1 000000000000
    51   +  3 2dc09a01254d     3    1     4 000000000000
    51   +           3 2dc09a01254d            3            1            4 000000000000
    52      1 66f7d451a68b     1    1     2 000000000000
    52               1 66f7d451a68b            1            1            2 000000000000
    53   +  4 bebd167eb94d     4    1     5 000000000000
    53   +           4 bebd167eb94d            4            1            5 000000000000
    54   [1]
    54   [1]
    55 
    55 
    56 Using a range not ending on 2**N boundary
    56 Using a range not ending on 2**N boundary
    57 we fall back on 2**N as much as possible
    57 we fall back on 2**N as much as possible
    58 
    58 
    59   $ hg debugstablerange --rev 5
    59   $ hg debugstablerange --rev 5
    60   rev         node index size depth      obshash
    60            rev         node        index         size        depth      obshash
    61     5 c8d03c1b5e94     0    6     6 000000000000
    61              5 c8d03c1b5e94            0            6            6 000000000000
    62     3 2dc09a01254d     0    4     4 000000000000
    62              3 2dc09a01254d            0            4            4 000000000000
    63     3 2dc09a01254d     2    2     4 000000000000
    63              3 2dc09a01254d            2            2            4 000000000000
    64     1 66f7d451a68b     0    2     2 000000000000
    64              1 66f7d451a68b            0            2            2 000000000000
    65     5 c8d03c1b5e94     4    2     6 000000000000
    65              5 c8d03c1b5e94            4            2            6 000000000000
    66     2 01241442b3c2     2    1     3 000000000000
    66              2 01241442b3c2            2            1            3 000000000000
    67     0 1ea73414a91b     0    1     1 000000000000
    67              0 1ea73414a91b            0            1            1 000000000000
    68     3 2dc09a01254d     3    1     4 000000000000
    68              3 2dc09a01254d            3            1            4 000000000000
    69     1 66f7d451a68b     1    1     2 000000000000
    69              1 66f7d451a68b            1            1            2 000000000000
    70     4 bebd167eb94d     4    1     5 000000000000
    70              4 bebd167eb94d            4            1            5 000000000000
    71     5 c8d03c1b5e94     5    1     6 000000000000
    71              5 c8d03c1b5e94            5            1            6 000000000000
    72   $ hg debugstablerange --rev 5 > 5.range
    72   $ hg debugstablerange --rev 5 > 5.range
    73   $ diff -u 4.range 5.range
    73   $ diff -u 4.range 5.range
    74   --- 4.range	* (glob)
    74   --- 4.range	* (glob)
    75   +++ 5.range	* (glob)
    75   +++ 5.range	* (glob)
    76   @@ -1,10 +1,12 @@
    76   @@ -1,10 +1,12 @@
    77    rev         node index size depth      obshash
    77             rev         node        index         size        depth      obshash
    78   -  4 bebd167eb94d     0    5     5 000000000000
    78   -           4 bebd167eb94d            0            5            5 000000000000
    79   +  5 c8d03c1b5e94     0    6     6 000000000000
    79   +           5 c8d03c1b5e94            0            6            6 000000000000
    80      3 2dc09a01254d     0    4     4 000000000000
    80               3 2dc09a01254d            0            4            4 000000000000
    81      3 2dc09a01254d     2    2     4 000000000000
    81               3 2dc09a01254d            2            2            4 000000000000
    82      1 66f7d451a68b     0    2     2 000000000000
    82               1 66f7d451a68b            0            2            2 000000000000
    83   +  5 c8d03c1b5e94     4    2     6 000000000000
    83   +           5 c8d03c1b5e94            4            2            6 000000000000
    84      2 01241442b3c2     2    1     3 000000000000
    84               2 01241442b3c2            2            1            3 000000000000
    85      0 1ea73414a91b     0    1     1 000000000000
    85               0 1ea73414a91b            0            1            1 000000000000
    86      3 2dc09a01254d     3    1     4 000000000000
    86               3 2dc09a01254d            3            1            4 000000000000
    87      1 66f7d451a68b     1    1     2 000000000000
    87               1 66f7d451a68b            1            1            2 000000000000
    88      4 bebd167eb94d     4    1     5 000000000000
    88               4 bebd167eb94d            4            1            5 000000000000
    89   +  5 c8d03c1b5e94     5    1     6 000000000000
    89   +           5 c8d03c1b5e94            5            1            6 000000000000
    90   [1]
    90   [1]
    91 
    91 
    92 Even two unperfect range overlap a lot
    92 Even two unperfect range overlap a lot
    93 
    93 
    94   $ hg debugstablerange --rev tip
    94   $ hg debugstablerange --rev tip
    95   rev         node index size depth      obshash
    95            rev         node        index         size        depth      obshash
    96     6 f69452c5b1af     0    7     7 000000000000
    96              6 f69452c5b1af            0            7            7 000000000000
    97     3 2dc09a01254d     0    4     4 000000000000
    97              3 2dc09a01254d            0            4            4 000000000000
    98     6 f69452c5b1af     4    3     7 000000000000
    98              6 f69452c5b1af            4            3            7 000000000000
    99     3 2dc09a01254d     2    2     4 000000000000
    99              3 2dc09a01254d            2            2            4 000000000000
   100     1 66f7d451a68b     0    2     2 000000000000
   100              1 66f7d451a68b            0            2            2 000000000000
   101     5 c8d03c1b5e94     4    2     6 000000000000
   101              5 c8d03c1b5e94            4            2            6 000000000000
   102     2 01241442b3c2     2    1     3 000000000000
   102              2 01241442b3c2            2            1            3 000000000000
   103     0 1ea73414a91b     0    1     1 000000000000
   103              0 1ea73414a91b            0            1            1 000000000000
   104     3 2dc09a01254d     3    1     4 000000000000
   104              3 2dc09a01254d            3            1            4 000000000000
   105     1 66f7d451a68b     1    1     2 000000000000
   105              1 66f7d451a68b            1            1            2 000000000000
   106     4 bebd167eb94d     4    1     5 000000000000
   106              4 bebd167eb94d            4            1            5 000000000000
   107     5 c8d03c1b5e94     5    1     6 000000000000
   107              5 c8d03c1b5e94            5            1            6 000000000000
   108     6 f69452c5b1af     6    1     7 000000000000
   108              6 f69452c5b1af            6            1            7 000000000000
   109   $ hg debugstablerange --rev tip > tip.range
   109   $ hg debugstablerange --rev tip > tip.range
   110   $ diff -u 5.range tip.range
   110   $ diff -u 5.range tip.range
   111   --- 5.range	* (glob)
   111   --- 5.range	* (glob)
   112   +++ tip.range	* (glob)
   112   +++ tip.range	* (glob)
   113   @@ -1,6 +1,7 @@
   113   @@ -1,6 +1,7 @@
   114    rev         node index size depth      obshash
   114             rev         node        index         size        depth      obshash
   115   -  5 c8d03c1b5e94     0    6     6 000000000000
   115   -           5 c8d03c1b5e94            0            6            6 000000000000
   116   +  6 f69452c5b1af     0    7     7 000000000000
   116   +           6 f69452c5b1af            0            7            7 000000000000
   117      3 2dc09a01254d     0    4     4 000000000000
   117               3 2dc09a01254d            0            4            4 000000000000
   118   +  6 f69452c5b1af     4    3     7 000000000000
   118   +           6 f69452c5b1af            4            3            7 000000000000
   119      3 2dc09a01254d     2    2     4 000000000000
   119               3 2dc09a01254d            2            2            4 000000000000
   120      1 66f7d451a68b     0    2     2 000000000000
   120               1 66f7d451a68b            0            2            2 000000000000
   121      5 c8d03c1b5e94     4    2     6 000000000000
   121               5 c8d03c1b5e94            4            2            6 000000000000
   122   @@ -10,3 +11,4 @@
   122   @@ -10,3 +11,4 @@
   123      1 66f7d451a68b     1    1     2 000000000000
   123               1 66f7d451a68b            1            1            2 000000000000
   124      4 bebd167eb94d     4    1     5 000000000000
   124               4 bebd167eb94d            4            1            5 000000000000
   125      5 c8d03c1b5e94     5    1     6 000000000000
   125               5 c8d03c1b5e94            5            1            6 000000000000
   126   +  6 f69452c5b1af     6    1     7 000000000000
   126   +           6 f69452c5b1af            6            1            7 000000000000
   127   [1]
   127   [1]
   128 
   128 
   129   $ cd ..
   129   $ cd ..
   130 
   130 
   131 Case with merge
   131 Case with merge
   167 Each of the linear branch reuse range internally
   167 Each of the linear branch reuse range internally
   168 
   168 
   169 (left branch)
   169 (left branch)
   170 
   170 
   171   $ hg debugstablerange --rev 'left~2'
   171   $ hg debugstablerange --rev 'left~2'
   172   rev         node index size depth      obshash
   172            rev         node        index         size        depth      obshash
   173     1 66f7d451a68b     0    2     2 000000000000
   173              1 66f7d451a68b            0            2            2 000000000000
   174     0 1ea73414a91b     0    1     1 000000000000
   174              0 1ea73414a91b            0            1            1 000000000000
   175     1 66f7d451a68b     1    1     2 000000000000
   175              1 66f7d451a68b            1            1            2 000000000000
   176   $ hg debugstablerange --rev 'left~2' > left-2.range
   176   $ hg debugstablerange --rev 'left~2' > left-2.range
   177   $ hg debugstablerange --rev left
   177   $ hg debugstablerange --rev left
   178   rev         node index size depth      obshash
   178            rev         node        index         size        depth      obshash
   179     3 2dc09a01254d     0    4     4 000000000000
   179              3 2dc09a01254d            0            4            4 000000000000
   180     3 2dc09a01254d     2    2     4 000000000000
   180              3 2dc09a01254d            2            2            4 000000000000
   181     1 66f7d451a68b     0    2     2 000000000000
   181              1 66f7d451a68b            0            2            2 000000000000
   182     2 01241442b3c2     2    1     3 000000000000
   182              2 01241442b3c2            2            1            3 000000000000
   183     0 1ea73414a91b     0    1     1 000000000000
   183              0 1ea73414a91b            0            1            1 000000000000
   184     3 2dc09a01254d     3    1     4 000000000000
   184              3 2dc09a01254d            3            1            4 000000000000
   185     1 66f7d451a68b     1    1     2 000000000000
   185              1 66f7d451a68b            1            1            2 000000000000
   186   $ hg debugstablerange --rev 'left' > left.range
   186   $ hg debugstablerange --rev 'left' > left.range
   187   $ diff -u left-2.range left.range
   187   $ diff -u left-2.range left.range
   188   --- left-2.range	* (glob)
   188   --- left-2.range	* (glob)
   189   +++ left.range	* (glob)
   189   +++ left.range	* (glob)
   190   @@ -1,4 +1,8 @@
   190   @@ -1,4 +1,8 @@
   191    rev         node index size depth      obshash
   191             rev         node        index         size        depth      obshash
   192   +  3 2dc09a01254d     0    4     4 000000000000
   192   +           3 2dc09a01254d            0            4            4 000000000000
   193   +  3 2dc09a01254d     2    2     4 000000000000
   193   +           3 2dc09a01254d            2            2            4 000000000000
   194      1 66f7d451a68b     0    2     2 000000000000
   194               1 66f7d451a68b            0            2            2 000000000000
   195   +  2 01241442b3c2     2    1     3 000000000000
   195   +           2 01241442b3c2            2            1            3 000000000000
   196      0 1ea73414a91b     0    1     1 000000000000
   196               0 1ea73414a91b            0            1            1 000000000000
   197   +  3 2dc09a01254d     3    1     4 000000000000
   197   +           3 2dc09a01254d            3            1            4 000000000000
   198      1 66f7d451a68b     1    1     2 000000000000
   198               1 66f7d451a68b            1            1            2 000000000000
   199   [1]
   199   [1]
   200 
   200 
   201 (right branch)
   201 (right branch)
   202 
   202 
   203   $ hg debugstablerange --rev right~2
   203   $ hg debugstablerange --rev right~2
   204   rev         node index size depth      obshash
   204            rev         node        index         size        depth      obshash
   205     4 e7bd5218ca15     0    2     2 000000000000
   205              4 e7bd5218ca15            0            2            2 000000000000
   206     0 1ea73414a91b     0    1     1 000000000000
   206              0 1ea73414a91b            0            1            1 000000000000
   207     4 e7bd5218ca15     1    1     2 000000000000
   207              4 e7bd5218ca15            1            1            2 000000000000
   208   $ hg debugstablerange --rev 'right~2' > right-2.range
   208   $ hg debugstablerange --rev 'right~2' > right-2.range
   209   $ hg debugstablerange --rev right
   209   $ hg debugstablerange --rev right
   210   rev         node index size depth      obshash
   210            rev         node        index         size        depth      obshash
   211     6 a2f58e9c1e56     0    4     4 000000000000
   211              6 a2f58e9c1e56            0            4            4 000000000000
   212     6 a2f58e9c1e56     2    2     4 000000000000
   212              6 a2f58e9c1e56            2            2            4 000000000000
   213     4 e7bd5218ca15     0    2     2 000000000000
   213              4 e7bd5218ca15            0            2            2 000000000000
   214     0 1ea73414a91b     0    1     1 000000000000
   214              0 1ea73414a91b            0            1            1 000000000000
   215     5 3a367db1fabc     2    1     3 000000000000
   215              5 3a367db1fabc            2            1            3 000000000000
   216     6 a2f58e9c1e56     3    1     4 000000000000
   216              6 a2f58e9c1e56            3            1            4 000000000000
   217     4 e7bd5218ca15     1    1     2 000000000000
   217              4 e7bd5218ca15            1            1            2 000000000000
   218   $ hg debugstablerange --rev 'right' > right.range
   218   $ hg debugstablerange --rev 'right' > right.range
   219   $ diff -u right-2.range right.range
   219   $ diff -u right-2.range right.range
   220   --- right-2.range	* (glob)
   220   --- right-2.range	* (glob)
   221   +++ right.range	* (glob)
   221   +++ right.range	* (glob)
   222   @@ -1,4 +1,8 @@
   222   @@ -1,4 +1,8 @@
   223    rev         node index size depth      obshash
   223             rev         node        index         size        depth      obshash
   224   +  6 a2f58e9c1e56     0    4     4 000000000000
   224   +           6 a2f58e9c1e56            0            4            4 000000000000
   225   +  6 a2f58e9c1e56     2    2     4 000000000000
   225   +           6 a2f58e9c1e56            2            2            4 000000000000
   226      4 e7bd5218ca15     0    2     2 000000000000
   226               4 e7bd5218ca15            0            2            2 000000000000
   227      0 1ea73414a91b     0    1     1 000000000000
   227               0 1ea73414a91b            0            1            1 000000000000
   228   +  5 3a367db1fabc     2    1     3 000000000000
   228   +           5 3a367db1fabc            2            1            3 000000000000
   229   +  6 a2f58e9c1e56     3    1     4 000000000000
   229   +           6 a2f58e9c1e56            3            1            4 000000000000
   230      4 e7bd5218ca15     1    1     2 000000000000
   230               4 e7bd5218ca15            1            1            2 000000000000
   231   [1]
   231   [1]
   232 
   232 
   233 The merge reuse as much of the slicing created for one of the branch
   233 The merge reuse as much of the slicing created for one of the branch
   234 
   234 
   235   $ hg debugstablerange --rev merge
   235   $ hg debugstablerange --rev merge
   236   rev         node index size depth      obshash
   236            rev         node        index         size        depth      obshash
   237     7 5f18015f9110     0    8     8 000000000000
   237              7 5f18015f9110            0            8            8 000000000000
   238     3 2dc09a01254d     0    4     4 000000000000
   238              3 2dc09a01254d            0            4            4 000000000000
   239     7 5f18015f9110     4    4     8 000000000000
   239              7 5f18015f9110            4            4            8 000000000000
   240     3 2dc09a01254d     2    2     4 000000000000
   240              3 2dc09a01254d            2            2            4 000000000000
   241     5 3a367db1fabc     1    2     3 000000000000
   241              5 3a367db1fabc            1            2            3 000000000000
   242     7 5f18015f9110     6    2     8 000000000000
   242              7 5f18015f9110            6            2            8 000000000000
   243     1 66f7d451a68b     0    2     2 000000000000
   243              1 66f7d451a68b            0            2            2 000000000000
   244     2 01241442b3c2     2    1     3 000000000000
   244              2 01241442b3c2            2            1            3 000000000000
   245     0 1ea73414a91b     0    1     1 000000000000
   245              0 1ea73414a91b            0            1            1 000000000000
   246     3 2dc09a01254d     3    1     4 000000000000
   246              3 2dc09a01254d            3            1            4 000000000000
   247     5 3a367db1fabc     2    1     3 000000000000
   247              5 3a367db1fabc            2            1            3 000000000000
   248     7 5f18015f9110     7    1     8 000000000000
   248              7 5f18015f9110            7            1            8 000000000000
   249     1 66f7d451a68b     1    1     2 000000000000
   249              1 66f7d451a68b            1            1            2 000000000000
   250     6 a2f58e9c1e56     3    1     4 000000000000
   250              6 a2f58e9c1e56            3            1            4 000000000000
   251     4 e7bd5218ca15     1    1     2 000000000000
   251              4 e7bd5218ca15            1            1            2 000000000000
   252   $ hg debugstablerange --rev 'merge' > merge.range
   252   $ hg debugstablerange --rev 'merge' > merge.range
   253   $ diff -u left.range merge.range
   253   $ diff -u left.range merge.range
   254   --- left.range	* (glob)
   254   --- left.range	* (glob)
   255   +++ merge.range	* (glob)
   255   +++ merge.range	* (glob)
   256   @@ -1,8 +1,16 @@
   256   @@ -1,8 +1,16 @@
   257    rev         node index size depth      obshash
   257             rev         node        index         size        depth      obshash
   258   +  7 5f18015f9110     0    8     8 000000000000
   258   +           7 5f18015f9110            0            8            8 000000000000
   259      3 2dc09a01254d     0    4     4 000000000000
   259               3 2dc09a01254d            0            4            4 000000000000
   260   +  7 5f18015f9110     4    4     8 000000000000
   260   +           7 5f18015f9110            4            4            8 000000000000
   261      3 2dc09a01254d     2    2     4 000000000000
   261               3 2dc09a01254d            2            2            4 000000000000
   262   +  5 3a367db1fabc     1    2     3 000000000000
   262   +           5 3a367db1fabc            1            2            3 000000000000
   263   +  7 5f18015f9110     6    2     8 000000000000
   263   +           7 5f18015f9110            6            2            8 000000000000
   264      1 66f7d451a68b     0    2     2 000000000000
   264               1 66f7d451a68b            0            2            2 000000000000
   265      2 01241442b3c2     2    1     3 000000000000
   265               2 01241442b3c2            2            1            3 000000000000
   266      0 1ea73414a91b     0    1     1 000000000000
   266               0 1ea73414a91b            0            1            1 000000000000
   267      3 2dc09a01254d     3    1     4 000000000000
   267               3 2dc09a01254d            3            1            4 000000000000
   268   +  5 3a367db1fabc     2    1     3 000000000000
   268   +           5 3a367db1fabc            2            1            3 000000000000
   269   +  7 5f18015f9110     7    1     8 000000000000
   269   +           7 5f18015f9110            7            1            8 000000000000
   270      1 66f7d451a68b     1    1     2 000000000000
   270               1 66f7d451a68b            1            1            2 000000000000
   271   +  6 a2f58e9c1e56     3    1     4 000000000000
   271   +           6 a2f58e9c1e56            3            1            4 000000000000
   272   +  4 e7bd5218ca15     1    1     2 000000000000
   272   +           4 e7bd5218ca15            1            1            2 000000000000
   273   [1]
   273   [1]
   274   $ diff -u right.range merge.range
   274   $ diff -u right.range merge.range
   275   --- right.range	* (glob)
   275   --- right.range	* (glob)
   276   +++ merge.range	* (glob)
   276   +++ merge.range	* (glob)
   277   @@ -1,8 +1,16 @@
   277   @@ -1,8 +1,16 @@
   278    rev         node index size depth      obshash
   278             rev         node        index         size        depth      obshash
   279   -  6 a2f58e9c1e56     0    4     4 000000000000
   279   -           6 a2f58e9c1e56            0            4            4 000000000000
   280   -  6 a2f58e9c1e56     2    2     4 000000000000
   280   -           6 a2f58e9c1e56            2            2            4 000000000000
   281   -  4 e7bd5218ca15     0    2     2 000000000000
   281   -           4 e7bd5218ca15            0            2            2 000000000000
   282   +  7 5f18015f9110     0    8     8 000000000000
   282   +           7 5f18015f9110            0            8            8 000000000000
   283   +  3 2dc09a01254d     0    4     4 000000000000
   283   +           3 2dc09a01254d            0            4            4 000000000000
   284   +  7 5f18015f9110     4    4     8 000000000000
   284   +           7 5f18015f9110            4            4            8 000000000000
   285   +  3 2dc09a01254d     2    2     4 000000000000
   285   +           3 2dc09a01254d            2            2            4 000000000000
   286   +  5 3a367db1fabc     1    2     3 000000000000
   286   +           5 3a367db1fabc            1            2            3 000000000000
   287   +  7 5f18015f9110     6    2     8 000000000000
   287   +           7 5f18015f9110            6            2            8 000000000000
   288   +  1 66f7d451a68b     0    2     2 000000000000
   288   +           1 66f7d451a68b            0            2            2 000000000000
   289   +  2 01241442b3c2     2    1     3 000000000000
   289   +           2 01241442b3c2            2            1            3 000000000000
   290      0 1ea73414a91b     0    1     1 000000000000
   290               0 1ea73414a91b            0            1            1 000000000000
   291   +  3 2dc09a01254d     3    1     4 000000000000
   291   +           3 2dc09a01254d            3            1            4 000000000000
   292      5 3a367db1fabc     2    1     3 000000000000
   292               5 3a367db1fabc            2            1            3 000000000000
   293   +  7 5f18015f9110     7    1     8 000000000000
   293   +           7 5f18015f9110            7            1            8 000000000000
   294   +  1 66f7d451a68b     1    1     2 000000000000
   294   +           1 66f7d451a68b            1            1            2 000000000000
   295      6 a2f58e9c1e56     3    1     4 000000000000
   295               6 a2f58e9c1e56            3            1            4 000000000000
   296      4 e7bd5218ca15     1    1     2 000000000000
   296               4 e7bd5218ca15            1            1            2 000000000000
   297   [1]
   297   [1]
   298   $ cd ..
   298   $ cd ..
   299 
   299 
   300 slice create multiple heads
   300 slice create multiple heads
   301 ---------------------------
   301 ---------------------------
   347 Each of the linear branch reuse range internally
   347 Each of the linear branch reuse range internally
   348 
   348 
   349 (left branch)
   349 (left branch)
   350 
   350 
   351   $ hg debugstablerange --rev 'left~2'
   351   $ hg debugstablerange --rev 'left~2'
   352   rev         node index size depth      obshash
   352            rev         node        index         size        depth      obshash
   353     2 01241442b3c2     0    3     3 000000000000
   353              2 01241442b3c2            0            3            3 000000000000
   354     1 66f7d451a68b     0    2     2 000000000000
   354              1 66f7d451a68b            0            2            2 000000000000
   355     2 01241442b3c2     2    1     3 000000000000
   355              2 01241442b3c2            2            1            3 000000000000
   356     0 1ea73414a91b     0    1     1 000000000000
   356              0 1ea73414a91b            0            1            1 000000000000
   357     1 66f7d451a68b     1    1     2 000000000000
   357              1 66f7d451a68b            1            1            2 000000000000
   358   $ hg debugstablerange --rev 'left~2' > left-2.range
   358   $ hg debugstablerange --rev 'left~2' > left-2.range
   359   $ hg debugstablerange --rev left
   359   $ hg debugstablerange --rev left
   360   rev         node index size depth      obshash
   360            rev         node        index         size        depth      obshash
   361     4 bebd167eb94d     0    5     5 000000000000
   361              4 bebd167eb94d            0            5            5 000000000000
   362     3 2dc09a01254d     0    4     4 000000000000
   362              3 2dc09a01254d            0            4            4 000000000000
   363     3 2dc09a01254d     2    2     4 000000000000
   363              3 2dc09a01254d            2            2            4 000000000000
   364     1 66f7d451a68b     0    2     2 000000000000
   364              1 66f7d451a68b            0            2            2 000000000000
   365     2 01241442b3c2     2    1     3 000000000000
   365              2 01241442b3c2            2            1            3 000000000000
   366     0 1ea73414a91b     0    1     1 000000000000
   366              0 1ea73414a91b            0            1            1 000000000000
   367     3 2dc09a01254d     3    1     4 000000000000
   367              3 2dc09a01254d            3            1            4 000000000000
   368     1 66f7d451a68b     1    1     2 000000000000
   368              1 66f7d451a68b            1            1            2 000000000000
   369     4 bebd167eb94d     4    1     5 000000000000
   369              4 bebd167eb94d            4            1            5 000000000000
   370   $ hg debugstablerange --rev 'left' > left.range
   370   $ hg debugstablerange --rev 'left' > left.range
   371   $ diff -u left-2.range left.range
   371   $ diff -u left-2.range left.range
   372   --- left-2.range	* (glob)
   372   --- left-2.range	* (glob)
   373   +++ left.range	* (glob)
   373   +++ left.range	* (glob)
   374   @@ -1,6 +1,10 @@
   374   @@ -1,6 +1,10 @@
   375    rev         node index size depth      obshash
   375             rev         node        index         size        depth      obshash
   376   -  2 01241442b3c2     0    3     3 000000000000
   376   -           2 01241442b3c2            0            3            3 000000000000
   377   +  4 bebd167eb94d     0    5     5 000000000000
   377   +           4 bebd167eb94d            0            5            5 000000000000
   378   +  3 2dc09a01254d     0    4     4 000000000000
   378   +           3 2dc09a01254d            0            4            4 000000000000
   379   +  3 2dc09a01254d     2    2     4 000000000000
   379   +           3 2dc09a01254d            2            2            4 000000000000
   380      1 66f7d451a68b     0    2     2 000000000000
   380               1 66f7d451a68b            0            2            2 000000000000
   381      2 01241442b3c2     2    1     3 000000000000
   381               2 01241442b3c2            2            1            3 000000000000
   382      0 1ea73414a91b     0    1     1 000000000000
   382               0 1ea73414a91b            0            1            1 000000000000
   383   +  3 2dc09a01254d     3    1     4 000000000000
   383   +           3 2dc09a01254d            3            1            4 000000000000
   384      1 66f7d451a68b     1    1     2 000000000000
   384               1 66f7d451a68b            1            1            2 000000000000
   385   +  4 bebd167eb94d     4    1     5 000000000000
   385   +           4 bebd167eb94d            4            1            5 000000000000
   386   [1]
   386   [1]
   387 
   387 
   388 (right branch)
   388 (right branch)
   389 
   389 
   390   $ hg debugstablerange --rev right~2
   390   $ hg debugstablerange --rev right~2
   391   rev         node index size depth      obshash
   391            rev         node        index         size        depth      obshash
   392     7 42b07e8da27d     0    4     4 000000000000
   392              7 42b07e8da27d            0            4            4 000000000000
   393     7 42b07e8da27d     2    2     4 000000000000
   393              7 42b07e8da27d            2            2            4 000000000000
   394     5 de561312eff4     0    2     2 000000000000
   394              5 de561312eff4            0            2            2 000000000000
   395     0 1ea73414a91b     0    1     1 000000000000
   395              0 1ea73414a91b            0            1            1 000000000000
   396     7 42b07e8da27d     3    1     4 000000000000
   396              7 42b07e8da27d            3            1            4 000000000000
   397     6 b9bc20507e0b     2    1     3 000000000000
   397              6 b9bc20507e0b            2            1            3 000000000000
   398     5 de561312eff4     1    1     2 000000000000
   398              5 de561312eff4            1            1            2 000000000000
   399   $ hg debugstablerange --rev 'right~2' > right-2.range
   399   $ hg debugstablerange --rev 'right~2' > right-2.range
   400   $ hg debugstablerange --rev right
   400   $ hg debugstablerange --rev right
   401   rev         node index size depth      obshash
   401            rev         node        index         size        depth      obshash
   402     9 f4b7da68b467     0    6     6 000000000000
   402              9 f4b7da68b467            0            6            6 000000000000
   403     7 42b07e8da27d     0    4     4 000000000000
   403              7 42b07e8da27d            0            4            4 000000000000
   404     7 42b07e8da27d     2    2     4 000000000000
   404              7 42b07e8da27d            2            2            4 000000000000
   405     5 de561312eff4     0    2     2 000000000000
   405              5 de561312eff4            0            2            2 000000000000
   406     9 f4b7da68b467     4    2     6 000000000000
   406              9 f4b7da68b467            4            2            6 000000000000
   407     0 1ea73414a91b     0    1     1 000000000000
   407              0 1ea73414a91b            0            1            1 000000000000
   408     7 42b07e8da27d     3    1     4 000000000000
   408              7 42b07e8da27d            3            1            4 000000000000
   409     8 857477a9aebb     4    1     5 000000000000
   409              8 857477a9aebb            4            1            5 000000000000
   410     6 b9bc20507e0b     2    1     3 000000000000
   410              6 b9bc20507e0b            2            1            3 000000000000
   411     5 de561312eff4     1    1     2 000000000000
   411              5 de561312eff4            1            1            2 000000000000
   412     9 f4b7da68b467     5    1     6 000000000000
   412              9 f4b7da68b467            5            1            6 000000000000
   413   $ hg debugstablerange --rev 'right' > right.range
   413   $ hg debugstablerange --rev 'right' > right.range
   414   $ diff -u right-2.range right.range
   414   $ diff -u right-2.range right.range
   415   --- right-2.range	* (glob)
   415   --- right-2.range	* (glob)
   416   +++ right.range	* (glob)
   416   +++ right.range	* (glob)
   417   @@ -1,8 +1,12 @@
   417   @@ -1,8 +1,12 @@
   418    rev         node index size depth      obshash
   418             rev         node        index         size        depth      obshash
   419   +  9 f4b7da68b467     0    6     6 000000000000
   419   +           9 f4b7da68b467            0            6            6 000000000000
   420      7 42b07e8da27d     0    4     4 000000000000
   420               7 42b07e8da27d            0            4            4 000000000000
   421      7 42b07e8da27d     2    2     4 000000000000
   421               7 42b07e8da27d            2            2            4 000000000000
   422      5 de561312eff4     0    2     2 000000000000
   422               5 de561312eff4            0            2            2 000000000000
   423   +  9 f4b7da68b467     4    2     6 000000000000
   423   +           9 f4b7da68b467            4            2            6 000000000000
   424      0 1ea73414a91b     0    1     1 000000000000
   424               0 1ea73414a91b            0            1            1 000000000000
   425      7 42b07e8da27d     3    1     4 000000000000
   425               7 42b07e8da27d            3            1            4 000000000000
   426   +  8 857477a9aebb     4    1     5 000000000000
   426   +           8 857477a9aebb            4            1            5 000000000000
   427      6 b9bc20507e0b     2    1     3 000000000000
   427               6 b9bc20507e0b            2            1            3 000000000000
   428      5 de561312eff4     1    1     2 000000000000
   428               5 de561312eff4            1            1            2 000000000000
   429   +  9 f4b7da68b467     5    1     6 000000000000
   429   +           9 f4b7da68b467            5            1            6 000000000000
   430   [1]
   430   [1]
   431 
   431 
   432 In this case, the bottom of the split will have multiple heads,
   432 In this case, the bottom of the split will have multiple heads,
   433 
   433 
   434 So we'll create more than 1 subrange out of it.
   434 So we'll create more than 1 subrange out of it.
   435 
   435 
   436 We are still able to reuse one of the branch however
   436 We are still able to reuse one of the branch however
   437 
   437 
   438   $ hg debugstablerange --rev merge
   438   $ hg debugstablerange --rev merge
   439   rev         node index size depth      obshash
   439            rev         node        index         size        depth      obshash
   440    10 8aca7f8c9bd2     0   11    11 000000000000
   440             10 8aca7f8c9bd2            0           11           11 000000000000
   441     4 bebd167eb94d     0    5     5 000000000000
   441              4 bebd167eb94d            0            5            5 000000000000
   442     3 2dc09a01254d     0    4     4 000000000000
   442              3 2dc09a01254d            0            4            4 000000000000
   443     7 42b07e8da27d     0    4     4 000000000000
   443              7 42b07e8da27d            0            4            4 000000000000
   444    10 8aca7f8c9bd2     8    3    11 000000000000
   444             10 8aca7f8c9bd2            8            3           11 000000000000
   445     3 2dc09a01254d     2    2     4 000000000000
   445              3 2dc09a01254d            2            2            4 000000000000
   446     7 42b07e8da27d     2    2     4 000000000000
   446              7 42b07e8da27d            2            2            4 000000000000
   447     1 66f7d451a68b     0    2     2 000000000000
   447              1 66f7d451a68b            0            2            2 000000000000
   448     5 de561312eff4     0    2     2 000000000000
   448              5 de561312eff4            0            2            2 000000000000
   449     9 f4b7da68b467     4    2     6 000000000000
   449              9 f4b7da68b467            4            2            6 000000000000
   450     2 01241442b3c2     2    1     3 000000000000
   450              2 01241442b3c2            2            1            3 000000000000
   451     0 1ea73414a91b     0    1     1 000000000000
   451              0 1ea73414a91b            0            1            1 000000000000
   452     3 2dc09a01254d     3    1     4 000000000000
   452              3 2dc09a01254d            3            1            4 000000000000
   453     7 42b07e8da27d     3    1     4 000000000000
   453              7 42b07e8da27d            3            1            4 000000000000
   454     1 66f7d451a68b     1    1     2 000000000000
   454              1 66f7d451a68b            1            1            2 000000000000
   455     8 857477a9aebb     4    1     5 000000000000
   455              8 857477a9aebb            4            1            5 000000000000
   456    10 8aca7f8c9bd2    10    1    11 000000000000
   456             10 8aca7f8c9bd2           10            1           11 000000000000
   457     6 b9bc20507e0b     2    1     3 000000000000
   457              6 b9bc20507e0b            2            1            3 000000000000
   458     4 bebd167eb94d     4    1     5 000000000000
   458              4 bebd167eb94d            4            1            5 000000000000
   459     5 de561312eff4     1    1     2 000000000000
   459              5 de561312eff4            1            1            2 000000000000
   460     9 f4b7da68b467     5    1     6 000000000000
   460              9 f4b7da68b467            5            1            6 000000000000
   461   $ hg debugstablerange --rev 'merge' > merge.range
   461   $ hg debugstablerange --rev 'merge' > merge.range
   462   $ diff -u left.range merge.range
   462   $ diff -u left.range merge.range
   463   --- left.range	* (glob)
   463   --- left.range	* (glob)
   464   +++ merge.range	* (glob)
   464   +++ merge.range	* (glob)
   465   @@ -1,10 +1,22 @@
   465   @@ -1,10 +1,22 @@
   466    rev         node index size depth      obshash
   466             rev         node        index         size        depth      obshash
   467   + 10 8aca7f8c9bd2     0   11    11 000000000000
   467   +          10 8aca7f8c9bd2            0           11           11 000000000000
   468      4 bebd167eb94d     0    5     5 000000000000
   468               4 bebd167eb94d            0            5            5 000000000000
   469      3 2dc09a01254d     0    4     4 000000000000
   469               3 2dc09a01254d            0            4            4 000000000000
   470   +  7 42b07e8da27d     0    4     4 000000000000
   470   +           7 42b07e8da27d            0            4            4 000000000000
   471   + 10 8aca7f8c9bd2     8    3    11 000000000000
   471   +          10 8aca7f8c9bd2            8            3           11 000000000000
   472      3 2dc09a01254d     2    2     4 000000000000
   472               3 2dc09a01254d            2            2            4 000000000000
   473   +  7 42b07e8da27d     2    2     4 000000000000
   473   +           7 42b07e8da27d            2            2            4 000000000000
   474      1 66f7d451a68b     0    2     2 000000000000
   474               1 66f7d451a68b            0            2            2 000000000000
   475   +  5 de561312eff4     0    2     2 000000000000
   475   +           5 de561312eff4            0            2            2 000000000000
   476   +  9 f4b7da68b467     4    2     6 000000000000
   476   +           9 f4b7da68b467            4            2            6 000000000000
   477      2 01241442b3c2     2    1     3 000000000000
   477               2 01241442b3c2            2            1            3 000000000000
   478      0 1ea73414a91b     0    1     1 000000000000
   478               0 1ea73414a91b            0            1            1 000000000000
   479      3 2dc09a01254d     3    1     4 000000000000
   479               3 2dc09a01254d            3            1            4 000000000000
   480   +  7 42b07e8da27d     3    1     4 000000000000
   480   +           7 42b07e8da27d            3            1            4 000000000000
   481      1 66f7d451a68b     1    1     2 000000000000
   481               1 66f7d451a68b            1            1            2 000000000000
   482   +  8 857477a9aebb     4    1     5 000000000000
   482   +           8 857477a9aebb            4            1            5 000000000000
   483   + 10 8aca7f8c9bd2    10    1    11 000000000000
   483   +          10 8aca7f8c9bd2           10            1           11 000000000000
   484   +  6 b9bc20507e0b     2    1     3 000000000000
   484   +           6 b9bc20507e0b            2            1            3 000000000000
   485      4 bebd167eb94d     4    1     5 000000000000
   485               4 bebd167eb94d            4            1            5 000000000000
   486   +  5 de561312eff4     1    1     2 000000000000
   486   +           5 de561312eff4            1            1            2 000000000000
   487   +  9 f4b7da68b467     5    1     6 000000000000
   487   +           9 f4b7da68b467            5            1            6 000000000000
   488   [1]
   488   [1]
   489   $ diff -u right.range merge.range
   489   $ diff -u right.range merge.range
   490   --- right.range	* (glob)
   490   --- right.range	* (glob)
   491   +++ merge.range	* (glob)
   491   +++ merge.range	* (glob)
   492   @@ -1,12 +1,22 @@
   492   @@ -1,12 +1,22 @@
   493    rev         node index size depth      obshash
   493             rev         node        index         size        depth      obshash
   494   -  9 f4b7da68b467     0    6     6 000000000000
   494   -           9 f4b7da68b467            0            6            6 000000000000
   495   + 10 8aca7f8c9bd2     0   11    11 000000000000
   495   +          10 8aca7f8c9bd2            0           11           11 000000000000
   496   +  4 bebd167eb94d     0    5     5 000000000000
   496   +           4 bebd167eb94d            0            5            5 000000000000
   497   +  3 2dc09a01254d     0    4     4 000000000000
   497   +           3 2dc09a01254d            0            4            4 000000000000
   498      7 42b07e8da27d     0    4     4 000000000000
   498               7 42b07e8da27d            0            4            4 000000000000
   499   + 10 8aca7f8c9bd2     8    3    11 000000000000
   499   +          10 8aca7f8c9bd2            8            3           11 000000000000
   500   +  3 2dc09a01254d     2    2     4 000000000000
   500   +           3 2dc09a01254d            2            2            4 000000000000
   501      7 42b07e8da27d     2    2     4 000000000000
   501               7 42b07e8da27d            2            2            4 000000000000
   502   +  1 66f7d451a68b     0    2     2 000000000000
   502   +           1 66f7d451a68b            0            2            2 000000000000
   503      5 de561312eff4     0    2     2 000000000000
   503               5 de561312eff4            0            2            2 000000000000
   504      9 f4b7da68b467     4    2     6 000000000000
   504               9 f4b7da68b467            4            2            6 000000000000
   505   +  2 01241442b3c2     2    1     3 000000000000
   505   +           2 01241442b3c2            2            1            3 000000000000
   506      0 1ea73414a91b     0    1     1 000000000000
   506               0 1ea73414a91b            0            1            1 000000000000
   507   +  3 2dc09a01254d     3    1     4 000000000000
   507   +           3 2dc09a01254d            3            1            4 000000000000
   508      7 42b07e8da27d     3    1     4 000000000000
   508               7 42b07e8da27d            3            1            4 000000000000
   509   +  1 66f7d451a68b     1    1     2 000000000000
   509   +           1 66f7d451a68b            1            1            2 000000000000
   510      8 857477a9aebb     4    1     5 000000000000
   510               8 857477a9aebb            4            1            5 000000000000
   511   + 10 8aca7f8c9bd2    10    1    11 000000000000
   511   +          10 8aca7f8c9bd2           10            1           11 000000000000
   512      6 b9bc20507e0b     2    1     3 000000000000
   512               6 b9bc20507e0b            2            1            3 000000000000
   513   +  4 bebd167eb94d     4    1     5 000000000000
   513   +           4 bebd167eb94d            4            1            5 000000000000
   514      5 de561312eff4     1    1     2 000000000000
   514               5 de561312eff4            1            1            2 000000000000
   515      9 f4b7da68b467     5    1     6 000000000000
   515               9 f4b7da68b467            5            1            6 000000000000
   516   [1]
   516   [1]
   517 
   517 
   518 Range above the merge, reuse subrange from the merge
   518 Range above the merge, reuse subrange from the merge
   519 
   519 
   520   $ hg debugstablerange --rev tip
   520   $ hg debugstablerange --rev tip
   521   rev         node index size depth      obshash
   521            rev         node        index         size        depth      obshash
   522    12 e6b8d5b46647     0   13    13 000000000000
   522             12 e6b8d5b46647            0           13           13 000000000000
   523     4 bebd167eb94d     0    5     5 000000000000
   523              4 bebd167eb94d            0            5            5 000000000000
   524    12 e6b8d5b46647     8    5    13 000000000000
   524             12 e6b8d5b46647            8            5           13 000000000000
   525     3 2dc09a01254d     0    4     4 000000000000
   525              3 2dc09a01254d            0            4            4 000000000000
   526     7 42b07e8da27d     0    4     4 000000000000
   526              7 42b07e8da27d            0            4            4 000000000000
   527    11 485383494a89     8    4    12 000000000000
   527             11 485383494a89            8            4           12 000000000000
   528     3 2dc09a01254d     2    2     4 000000000000
   528              3 2dc09a01254d            2            2            4 000000000000
   529     7 42b07e8da27d     2    2     4 000000000000
   529              7 42b07e8da27d            2            2            4 000000000000
   530    11 485383494a89    10    2    12 000000000000
   530             11 485383494a89           10            2           12 000000000000
   531     1 66f7d451a68b     0    2     2 000000000000
   531              1 66f7d451a68b            0            2            2 000000000000
   532     5 de561312eff4     0    2     2 000000000000
   532              5 de561312eff4            0            2            2 000000000000
   533     9 f4b7da68b467     4    2     6 000000000000
   533              9 f4b7da68b467            4            2            6 000000000000
   534     2 01241442b3c2     2    1     3 000000000000
   534              2 01241442b3c2            2            1            3 000000000000
   535     0 1ea73414a91b     0    1     1 000000000000
   535              0 1ea73414a91b            0            1            1 000000000000
   536     3 2dc09a01254d     3    1     4 000000000000
   536              3 2dc09a01254d            3            1            4 000000000000
   537     7 42b07e8da27d     3    1     4 000000000000
   537              7 42b07e8da27d            3            1            4 000000000000
   538    11 485383494a89    11    1    12 000000000000
   538             11 485383494a89           11            1           12 000000000000
   539     1 66f7d451a68b     1    1     2 000000000000
   539              1 66f7d451a68b            1            1            2 000000000000
   540     8 857477a9aebb     4    1     5 000000000000
   540              8 857477a9aebb            4            1            5 000000000000
   541    10 8aca7f8c9bd2    10    1    11 000000000000
   541             10 8aca7f8c9bd2           10            1           11 000000000000
   542     6 b9bc20507e0b     2    1     3 000000000000
   542              6 b9bc20507e0b            2            1            3 000000000000
   543     4 bebd167eb94d     4    1     5 000000000000
   543              4 bebd167eb94d            4            1            5 000000000000
   544     5 de561312eff4     1    1     2 000000000000
   544              5 de561312eff4            1            1            2 000000000000
   545    12 e6b8d5b46647    12    1    13 000000000000
   545             12 e6b8d5b46647           12            1           13 000000000000
   546     9 f4b7da68b467     5    1     6 000000000000
   546              9 f4b7da68b467            5            1            6 000000000000
   547   $ hg debugstablerange --rev 'tip' > tip.range
   547   $ hg debugstablerange --rev 'tip' > tip.range
   548   $ diff -u merge.range tip.range
   548   $ diff -u merge.range tip.range
   549   --- merge.range	* (glob)
   549   --- merge.range	* (glob)
   550   +++ tip.range	* (glob)
   550   +++ tip.range	* (glob)
   551   @@ -1,11 +1,13 @@
   551   @@ -1,11 +1,13 @@
   552    rev         node index size depth      obshash
   552             rev         node        index         size        depth      obshash
   553   - 10 8aca7f8c9bd2     0   11    11 000000000000
   553   -          10 8aca7f8c9bd2            0           11           11 000000000000
   554   + 12 e6b8d5b46647     0   13    13 000000000000
   554   +          12 e6b8d5b46647            0           13           13 000000000000
   555      4 bebd167eb94d     0    5     5 000000000000
   555               4 bebd167eb94d            0            5            5 000000000000
   556   + 12 e6b8d5b46647     8    5    13 000000000000
   556   +          12 e6b8d5b46647            8            5           13 000000000000
   557      3 2dc09a01254d     0    4     4 000000000000
   557               3 2dc09a01254d            0            4            4 000000000000
   558      7 42b07e8da27d     0    4     4 000000000000
   558               7 42b07e8da27d            0            4            4 000000000000
   559   - 10 8aca7f8c9bd2     8    3    11 000000000000
   559   -          10 8aca7f8c9bd2            8            3           11 000000000000
   560   + 11 485383494a89     8    4    12 000000000000
   560   +          11 485383494a89            8            4           12 000000000000
   561      3 2dc09a01254d     2    2     4 000000000000
   561               3 2dc09a01254d            2            2            4 000000000000
   562      7 42b07e8da27d     2    2     4 000000000000
   562               7 42b07e8da27d            2            2            4 000000000000
   563   + 11 485383494a89    10    2    12 000000000000
   563   +          11 485383494a89           10            2           12 000000000000
   564      1 66f7d451a68b     0    2     2 000000000000
   564               1 66f7d451a68b            0            2            2 000000000000
   565      5 de561312eff4     0    2     2 000000000000
   565               5 de561312eff4            0            2            2 000000000000
   566      9 f4b7da68b467     4    2     6 000000000000
   566               9 f4b7da68b467            4            2            6 000000000000
   567   @@ -13,10 +15,12 @@
   567   @@ -13,10 +15,12 @@
   568      0 1ea73414a91b     0    1     1 000000000000
   568               0 1ea73414a91b            0            1            1 000000000000
   569      3 2dc09a01254d     3    1     4 000000000000
   569               3 2dc09a01254d            3            1            4 000000000000
   570      7 42b07e8da27d     3    1     4 000000000000
   570               7 42b07e8da27d            3            1            4 000000000000
   571   + 11 485383494a89    11    1    12 000000000000
   571   +          11 485383494a89           11            1           12 000000000000
   572      1 66f7d451a68b     1    1     2 000000000000
   572               1 66f7d451a68b            1            1            2 000000000000
   573      8 857477a9aebb     4    1     5 000000000000
   573               8 857477a9aebb            4            1            5 000000000000
   574     10 8aca7f8c9bd2    10    1    11 000000000000
   574              10 8aca7f8c9bd2           10            1           11 000000000000
   575      6 b9bc20507e0b     2    1     3 000000000000
   575               6 b9bc20507e0b            2            1            3 000000000000
   576      4 bebd167eb94d     4    1     5 000000000000
   576               4 bebd167eb94d            4            1            5 000000000000
   577      5 de561312eff4     1    1     2 000000000000
   577               5 de561312eff4            1            1            2 000000000000
   578   + 12 e6b8d5b46647    12    1    13 000000000000
   578   +          12 e6b8d5b46647           12            1           13 000000000000
   579      9 f4b7da68b467     5    1     6 000000000000
   579               9 f4b7da68b467            5            1            6 000000000000
   580   [1]
   580   [1]
   581 
   581 
   582   $ cd ..
   582   $ cd ..
   583 
   583 
   584 Tests range with criss cross merge in the graph
   584 Tests range with criss cross merge in the graph
   631   | o  1 66f7d451a68b r1 g
   631   | o  1 66f7d451a68b r1 g
   632   |/
   632   |/
   633   o  0 1ea73414a91b r0
   633   o  0 1ea73414a91b r0
   634   
   634   
   635   $ hg debugstablerange --rev 'head()'
   635   $ hg debugstablerange --rev 'head()'
   636   rev         node index size depth      obshash
   636            rev         node        index         size        depth      obshash
   637    15 1d8d22637c2d     0    8     8 000000000000
   637             15 1d8d22637c2d            0            8            8 000000000000
   638     9 dcbb326fdec2     0    7     7 000000000000
   638              9 dcbb326fdec2            0            7            7 000000000000
   639    10 ff43616e5d0f     0    7     7 000000000000
   639             10 ff43616e5d0f            0            7            7 000000000000
   640    13 b4594d867745     0    6     6 000000000000
   640             13 b4594d867745            0            6            6 000000000000
   641    12 e46a4836065c     0    6     6 000000000000
   641             12 e46a4836065c            0            6            6 000000000000
   642     6 2702dd0c91e7     0    5     5 000000000000
   642              6 2702dd0c91e7            0            5            5 000000000000
   643    15 1d8d22637c2d     4    4     8 000000000000
   643             15 1d8d22637c2d            4            4            8 000000000000
   644     3 2b6d669947cd     0    4     4 000000000000
   644              3 2b6d669947cd            0            4            4 000000000000
   645     5 f0f3ef9a6cd5     0    4     4 000000000000
   645              5 f0f3ef9a6cd5            0            4            4 000000000000
   646     9 dcbb326fdec2     4    3     7 000000000000
   646              9 dcbb326fdec2            4            3            7 000000000000
   647    10 ff43616e5d0f     4    3     7 000000000000
   647             10 ff43616e5d0f            4            3            7 000000000000
   648    15 1d8d22637c2d     6    2     8 000000000000
   648             15 1d8d22637c2d            6            2            8 000000000000
   649     3 2b6d669947cd     2    2     4 000000000000
   649              3 2b6d669947cd            2            2            4 000000000000
   650     1 66f7d451a68b     0    2     2 000000000000
   650              1 66f7d451a68b            0            2            2 000000000000
   651    13 b4594d867745     4    2     6 000000000000
   651             13 b4594d867745            4            2            6 000000000000
   652     8 d62d843c9a01     4    2     6 000000000000
   652              8 d62d843c9a01            4            2            6 000000000000
   653    12 e46a4836065c     4    2     6 000000000000
   653             12 e46a4836065c            4            2            6 000000000000
   654     5 f0f3ef9a6cd5     2    2     4 000000000000
   654              5 f0f3ef9a6cd5            2            2            4 000000000000
   655     2 fa942426a6fd     0    2     2 000000000000
   655              2 fa942426a6fd            0            2            2 000000000000
   656    15 1d8d22637c2d     7    1     8 000000000000
   656             15 1d8d22637c2d            7            1            8 000000000000
   657     0 1ea73414a91b     0    1     1 000000000000
   657              0 1ea73414a91b            0            1            1 000000000000
   658     6 2702dd0c91e7     4    1     5 000000000000
   658              6 2702dd0c91e7            4            1            5 000000000000
   659     3 2b6d669947cd     3    1     4 000000000000
   659              3 2b6d669947cd            3            1            4 000000000000
   660    14 43227190fef8     4    1     5 000000000000
   660             14 43227190fef8            4            1            5 000000000000
   661     4 4c748ffd1a46     2    1     3 000000000000
   661              4 4c748ffd1a46            2            1            3 000000000000
   662     1 66f7d451a68b     1    1     2 000000000000
   662              1 66f7d451a68b            1            1            2 000000000000
   663    13 b4594d867745     5    1     6 000000000000
   663             13 b4594d867745            5            1            6 000000000000
   664    11 bab5d5bf48bd     4    1     5 000000000000
   664             11 bab5d5bf48bd            4            1            5 000000000000
   665     8 d62d843c9a01     5    1     6 000000000000
   665              8 d62d843c9a01            5            1            6 000000000000
   666     9 dcbb326fdec2     6    1     7 000000000000
   666              9 dcbb326fdec2            6            1            7 000000000000
   667    12 e46a4836065c     5    1     6 000000000000
   667             12 e46a4836065c            5            1            6 000000000000
   668     7 e7d9710d9fc6     4    1     5 000000000000
   668              7 e7d9710d9fc6            4            1            5 000000000000
   669     5 f0f3ef9a6cd5     3    1     4 000000000000
   669              5 f0f3ef9a6cd5            3            1            4 000000000000
   670     2 fa942426a6fd     1    1     2 000000000000
   670              2 fa942426a6fd            1            1            2 000000000000
   671    10 ff43616e5d0f     6    1     7 000000000000
   671             10 ff43616e5d0f            6            1            7 000000000000
   672   $ cd ..
   672   $ cd ..
   673 
   673 
   674 Tests range where a toprange is rooted on a merge
   674 Tests range where a toprange is rooted on a merge
   675 =================================================
   675 =================================================
   676 
   676 
   691   o |  1 66f7d451a68b r1 a
   691   o |  1 66f7d451a68b r1 a
   692   |/
   692   |/
   693   o  0 1ea73414a91b r0
   693   o  0 1ea73414a91b r0
   694   
   694   
   695   $ hg debugstablerange --rev 'head()'
   695   $ hg debugstablerange --rev 'head()'
   696   rev         node index size depth      obshash
   696            rev         node        index         size        depth      obshash
   697     4 f37e476fba9a     0    5     5 000000000000
   697              4 f37e476fba9a            0            5            5 000000000000
   698     3 36315563e2fa     0    3     3 000000000000
   698              3 36315563e2fa            0            3            3 000000000000
   699     1 66f7d451a68b     0    2     2 000000000000
   699              1 66f7d451a68b            0            2            2 000000000000
   700     2 fa942426a6fd     0    2     2 000000000000
   700              2 fa942426a6fd            0            2            2 000000000000
   701     0 1ea73414a91b     0    1     1 000000000000
   701              0 1ea73414a91b            0            1            1 000000000000
   702     3 36315563e2fa     2    1     3 000000000000
   702              3 36315563e2fa            2            1            3 000000000000
   703     1 66f7d451a68b     1    1     2 000000000000
   703              1 66f7d451a68b            1            1            2 000000000000
   704     4 f37e476fba9a     4    1     5 000000000000
   704              4 f37e476fba9a            4            1            5 000000000000
   705     2 fa942426a6fd     1    1     2 000000000000
   705              2 fa942426a6fd            1            1            2 000000000000
   706 
   706