--- a/tests/test-stablerange.t Thu Mar 09 22:57:41 2017 -0800
+++ b/tests/test-stablerange.t Fri Mar 10 10:36:46 2017 -0800
@@ -17,113 +17,113 @@
$ cd repo_linear
$ hg debugbuilddag '.+6'
$ hg debugstablerange --rev 1
- rev node index size depth
- 1 66f7d451a68b 0 2 2
- 0 1ea73414a91b 0 1 1
- 1 66f7d451a68b 1 1 2
+ rev node index size depth obshash
+ 1 66f7d451a68b 0 2 2 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
$ hg debugstablerange --rev 1 > 1.range
bigger subset reuse most of the previous one
$ hg debugstablerange --rev 4
- rev node index size depth
- 4 bebd167eb94d 0 5 5
- 3 2dc09a01254d 0 4 4
- 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
- 4 bebd167eb94d 4 1 5
+ rev node index size depth obshash
+ 4 bebd167eb94d 0 5 5 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
$ hg debugstablerange --rev 4 > 4.range
$ diff -u 1.range 4.range
--- 1.range * (glob)
+++ 4.range * (glob)
@@ -1,4 +1,10 @@
- rev node index size depth
- + 4 bebd167eb94d 0 5 5
- + 3 2dc09a01254d 0 4 4
- + 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- + 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- + 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
- + 4 bebd167eb94d 4 1 5
+ rev node index size depth obshash
+ + 4 bebd167eb94d 0 5 5 000000000000
+ + 3 2dc09a01254d 0 4 4 000000000000
+ + 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ + 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ + 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ + 4 bebd167eb94d 4 1 5 000000000000
[1]
Using a range not ending on 2**N boundary
we fall back on 2**N as much as possible
$ hg debugstablerange --rev 5
- rev node index size depth
- 5 c8d03c1b5e94 0 6 6
- 3 2dc09a01254d 0 4 4
- 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- 5 c8d03c1b5e94 4 2 6
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
- 4 bebd167eb94d 4 1 5
- 5 c8d03c1b5e94 5 1 6
+ rev node index size depth obshash
+ 5 c8d03c1b5e94 0 6 6 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 5 c8d03c1b5e94 4 2 6 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
+ 5 c8d03c1b5e94 5 1 6 000000000000
$ hg debugstablerange --rev 5 > 5.range
$ diff -u 4.range 5.range
--- 4.range * (glob)
+++ 5.range * (glob)
@@ -1,10 +1,12 @@
- rev node index size depth
- - 4 bebd167eb94d 0 5 5
- + 5 c8d03c1b5e94 0 6 6
- 3 2dc09a01254d 0 4 4
- 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- + 5 c8d03c1b5e94 4 2 6
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
- 4 bebd167eb94d 4 1 5
- + 5 c8d03c1b5e94 5 1 6
+ rev node index size depth obshash
+ - 4 bebd167eb94d 0 5 5 000000000000
+ + 5 c8d03c1b5e94 0 6 6 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ + 5 c8d03c1b5e94 4 2 6 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
+ + 5 c8d03c1b5e94 5 1 6 000000000000
[1]
Even two unperfect range overlap a lot
$ hg debugstablerange --rev tip
- rev node index size depth
- 6 f69452c5b1af 0 7 7
- 3 2dc09a01254d 0 4 4
- 6 f69452c5b1af 4 3 7
- 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- 5 c8d03c1b5e94 4 2 6
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
- 4 bebd167eb94d 4 1 5
- 5 c8d03c1b5e94 5 1 6
- 6 f69452c5b1af 6 1 7
+ rev node index size depth obshash
+ 6 f69452c5b1af 0 7 7 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 6 f69452c5b1af 4 3 7 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 5 c8d03c1b5e94 4 2 6 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
+ 5 c8d03c1b5e94 5 1 6 000000000000
+ 6 f69452c5b1af 6 1 7 000000000000
$ hg debugstablerange --rev tip > tip.range
$ diff -u 5.range tip.range
--- 5.range * (glob)
+++ tip.range * (glob)
@@ -1,6 +1,7 @@
- rev node index size depth
- - 5 c8d03c1b5e94 0 6 6
- + 6 f69452c5b1af 0 7 7
- 3 2dc09a01254d 0 4 4
- + 6 f69452c5b1af 4 3 7
- 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- 5 c8d03c1b5e94 4 2 6
+ rev node index size depth obshash
+ - 5 c8d03c1b5e94 0 6 6 000000000000
+ + 6 f69452c5b1af 0 7 7 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ + 6 f69452c5b1af 4 3 7 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 5 c8d03c1b5e94 4 2 6 000000000000
@@ -10,3 +11,4 @@
- 1 66f7d451a68b 1 1 2
- 4 bebd167eb94d 4 1 5
- 5 c8d03c1b5e94 5 1 6
- + 6 f69452c5b1af 6 1 7
+ 1 66f7d451a68b 1 1 2 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
+ 5 c8d03c1b5e94 5 1 6 000000000000
+ + 6 f69452c5b1af 6 1 7 000000000000
[1]
$ cd ..
@@ -169,131 +169,131 @@
(left branch)
$ hg debugstablerange --rev 'left~2'
- rev node index size depth
- 1 66f7d451a68b 0 2 2
- 0 1ea73414a91b 0 1 1
- 1 66f7d451a68b 1 1 2
+ rev node index size depth obshash
+ 1 66f7d451a68b 0 2 2 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
$ hg debugstablerange --rev 'left~2' > left-2.range
$ hg debugstablerange --rev left
- rev node index size depth
- 3 2dc09a01254d 0 4 4
- 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
+ rev node index size depth obshash
+ 3 2dc09a01254d 0 4 4 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
$ hg debugstablerange --rev 'left' > left.range
$ diff -u left-2.range left.range
--- left-2.range * (glob)
+++ left.range * (glob)
@@ -1,4 +1,8 @@
- rev node index size depth
- + 3 2dc09a01254d 0 4 4
- + 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- + 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- + 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
+ rev node index size depth obshash
+ + 3 2dc09a01254d 0 4 4 000000000000
+ + 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ + 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ + 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
[1]
(right branch)
$ hg debugstablerange --rev right~2
- rev node index size depth
- 4 e7bd5218ca15 0 2 2
- 0 1ea73414a91b 0 1 1
- 4 e7bd5218ca15 1 1 2
+ rev node index size depth obshash
+ 4 e7bd5218ca15 0 2 2 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 4 e7bd5218ca15 1 1 2 000000000000
$ hg debugstablerange --rev 'right~2' > right-2.range
$ hg debugstablerange --rev right
- rev node index size depth
- 6 a2f58e9c1e56 0 4 4
- 6 a2f58e9c1e56 2 2 4
- 4 e7bd5218ca15 0 2 2
- 0 1ea73414a91b 0 1 1
- 5 3a367db1fabc 2 1 3
- 6 a2f58e9c1e56 3 1 4
- 4 e7bd5218ca15 1 1 2
+ rev node index size depth obshash
+ 6 a2f58e9c1e56 0 4 4 000000000000
+ 6 a2f58e9c1e56 2 2 4 000000000000
+ 4 e7bd5218ca15 0 2 2 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 5 3a367db1fabc 2 1 3 000000000000
+ 6 a2f58e9c1e56 3 1 4 000000000000
+ 4 e7bd5218ca15 1 1 2 000000000000
$ hg debugstablerange --rev 'right' > right.range
$ diff -u right-2.range right.range
--- right-2.range * (glob)
+++ right.range * (glob)
@@ -1,4 +1,8 @@
- rev node index size depth
- + 6 a2f58e9c1e56 0 4 4
- + 6 a2f58e9c1e56 2 2 4
- 4 e7bd5218ca15 0 2 2
- 0 1ea73414a91b 0 1 1
- + 5 3a367db1fabc 2 1 3
- + 6 a2f58e9c1e56 3 1 4
- 4 e7bd5218ca15 1 1 2
+ rev node index size depth obshash
+ + 6 a2f58e9c1e56 0 4 4 000000000000
+ + 6 a2f58e9c1e56 2 2 4 000000000000
+ 4 e7bd5218ca15 0 2 2 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ + 5 3a367db1fabc 2 1 3 000000000000
+ + 6 a2f58e9c1e56 3 1 4 000000000000
+ 4 e7bd5218ca15 1 1 2 000000000000
[1]
The merge reuse as much of the slicing created for one of the branch
$ hg debugstablerange --rev merge
- rev node index size depth
- 7 5f18015f9110 0 8 8
- 3 2dc09a01254d 0 4 4
- 7 5f18015f9110 4 4 8
- 3 2dc09a01254d 2 2 4
- 5 3a367db1fabc 1 2 3
- 7 5f18015f9110 6 2 8
- 1 66f7d451a68b 0 2 2
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 5 3a367db1fabc 2 1 3
- 7 5f18015f9110 7 1 8
- 1 66f7d451a68b 1 1 2
- 6 a2f58e9c1e56 3 1 4
- 4 e7bd5218ca15 1 1 2
+ rev node index size depth obshash
+ 7 5f18015f9110 0 8 8 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 7 5f18015f9110 4 4 8 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 5 3a367db1fabc 1 2 3 000000000000
+ 7 5f18015f9110 6 2 8 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 5 3a367db1fabc 2 1 3 000000000000
+ 7 5f18015f9110 7 1 8 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 6 a2f58e9c1e56 3 1 4 000000000000
+ 4 e7bd5218ca15 1 1 2 000000000000
$ hg debugstablerange --rev 'merge' > merge.range
$ diff -u left.range merge.range
--- left.range * (glob)
+++ merge.range * (glob)
@@ -1,8 +1,16 @@
- rev node index size depth
- + 7 5f18015f9110 0 8 8
- 3 2dc09a01254d 0 4 4
- + 7 5f18015f9110 4 4 8
- 3 2dc09a01254d 2 2 4
- + 5 3a367db1fabc 1 2 3
- + 7 5f18015f9110 6 2 8
- 1 66f7d451a68b 0 2 2
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- + 5 3a367db1fabc 2 1 3
- + 7 5f18015f9110 7 1 8
- 1 66f7d451a68b 1 1 2
- + 6 a2f58e9c1e56 3 1 4
- + 4 e7bd5218ca15 1 1 2
+ rev node index size depth obshash
+ + 7 5f18015f9110 0 8 8 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ + 7 5f18015f9110 4 4 8 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ + 5 3a367db1fabc 1 2 3 000000000000
+ + 7 5f18015f9110 6 2 8 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ + 5 3a367db1fabc 2 1 3 000000000000
+ + 7 5f18015f9110 7 1 8 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ + 6 a2f58e9c1e56 3 1 4 000000000000
+ + 4 e7bd5218ca15 1 1 2 000000000000
[1]
$ diff -u right.range merge.range
--- right.range * (glob)
+++ merge.range * (glob)
@@ -1,8 +1,16 @@
- rev node index size depth
- - 6 a2f58e9c1e56 0 4 4
- - 6 a2f58e9c1e56 2 2 4
- - 4 e7bd5218ca15 0 2 2
- + 7 5f18015f9110 0 8 8
- + 3 2dc09a01254d 0 4 4
- + 7 5f18015f9110 4 4 8
- + 3 2dc09a01254d 2 2 4
- + 5 3a367db1fabc 1 2 3
- + 7 5f18015f9110 6 2 8
- + 1 66f7d451a68b 0 2 2
- + 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- + 3 2dc09a01254d 3 1 4
- 5 3a367db1fabc 2 1 3
- + 7 5f18015f9110 7 1 8
- + 1 66f7d451a68b 1 1 2
- 6 a2f58e9c1e56 3 1 4
- 4 e7bd5218ca15 1 1 2
+ rev node index size depth obshash
+ - 6 a2f58e9c1e56 0 4 4 000000000000
+ - 6 a2f58e9c1e56 2 2 4 000000000000
+ - 4 e7bd5218ca15 0 2 2 000000000000
+ + 7 5f18015f9110 0 8 8 000000000000
+ + 3 2dc09a01254d 0 4 4 000000000000
+ + 7 5f18015f9110 4 4 8 000000000000
+ + 3 2dc09a01254d 2 2 4 000000000000
+ + 5 3a367db1fabc 1 2 3 000000000000
+ + 7 5f18015f9110 6 2 8 000000000000
+ + 1 66f7d451a68b 0 2 2 000000000000
+ + 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ + 3 2dc09a01254d 3 1 4 000000000000
+ 5 3a367db1fabc 2 1 3 000000000000
+ + 7 5f18015f9110 7 1 8 000000000000
+ + 1 66f7d451a68b 1 1 2 000000000000
+ 6 a2f58e9c1e56 3 1 4 000000000000
+ 4 e7bd5218ca15 1 1 2 000000000000
[1]
$ cd ..
@@ -349,84 +349,84 @@
(left branch)
$ hg debugstablerange --rev 'left~2'
- rev node index size depth
- 2 01241442b3c2 0 3 3
- 1 66f7d451a68b 0 2 2
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 1 66f7d451a68b 1 1 2
+ rev node index size depth obshash
+ 2 01241442b3c2 0 3 3 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
$ hg debugstablerange --rev 'left~2' > left-2.range
$ hg debugstablerange --rev left
- rev node index size depth
- 4 bebd167eb94d 0 5 5
- 3 2dc09a01254d 0 4 4
- 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
- 4 bebd167eb94d 4 1 5
+ rev node index size depth obshash
+ 4 bebd167eb94d 0 5 5 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
$ hg debugstablerange --rev 'left' > left.range
$ diff -u left-2.range left.range
--- left-2.range * (glob)
+++ left.range * (glob)
@@ -1,6 +1,10 @@
- rev node index size depth
- - 2 01241442b3c2 0 3 3
- + 4 bebd167eb94d 0 5 5
- + 3 2dc09a01254d 0 4 4
- + 3 2dc09a01254d 2 2 4
- 1 66f7d451a68b 0 2 2
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- + 3 2dc09a01254d 3 1 4
- 1 66f7d451a68b 1 1 2
- + 4 bebd167eb94d 4 1 5
+ rev node index size depth obshash
+ - 2 01241442b3c2 0 3 3 000000000000
+ + 4 bebd167eb94d 0 5 5 000000000000
+ + 3 2dc09a01254d 0 4 4 000000000000
+ + 3 2dc09a01254d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ + 3 2dc09a01254d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ + 4 bebd167eb94d 4 1 5 000000000000
[1]
(right branch)
$ hg debugstablerange --rev right~2
- rev node index size depth
- 7 42b07e8da27d 0 4 4
- 7 42b07e8da27d 2 2 4
- 5 de561312eff4 0 2 2
- 0 1ea73414a91b 0 1 1
- 7 42b07e8da27d 3 1 4
- 6 b9bc20507e0b 2 1 3
- 5 de561312eff4 1 1 2
+ rev node index size depth obshash
+ 7 42b07e8da27d 0 4 4 000000000000
+ 7 42b07e8da27d 2 2 4 000000000000
+ 5 de561312eff4 0 2 2 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 7 42b07e8da27d 3 1 4 000000000000
+ 6 b9bc20507e0b 2 1 3 000000000000
+ 5 de561312eff4 1 1 2 000000000000
$ hg debugstablerange --rev 'right~2' > right-2.range
$ hg debugstablerange --rev right
- rev node index size depth
- 9 f4b7da68b467 0 6 6
- 7 42b07e8da27d 0 4 4
- 7 42b07e8da27d 2 2 4
- 5 de561312eff4 0 2 2
- 9 f4b7da68b467 4 2 6
- 0 1ea73414a91b 0 1 1
- 7 42b07e8da27d 3 1 4
- 8 857477a9aebb 4 1 5
- 6 b9bc20507e0b 2 1 3
- 5 de561312eff4 1 1 2
- 9 f4b7da68b467 5 1 6
+ rev node index size depth obshash
+ 9 f4b7da68b467 0 6 6 000000000000
+ 7 42b07e8da27d 0 4 4 000000000000
+ 7 42b07e8da27d 2 2 4 000000000000
+ 5 de561312eff4 0 2 2 000000000000
+ 9 f4b7da68b467 4 2 6 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 7 42b07e8da27d 3 1 4 000000000000
+ 8 857477a9aebb 4 1 5 000000000000
+ 6 b9bc20507e0b 2 1 3 000000000000
+ 5 de561312eff4 1 1 2 000000000000
+ 9 f4b7da68b467 5 1 6 000000000000
$ hg debugstablerange --rev 'right' > right.range
$ diff -u right-2.range right.range
--- right-2.range * (glob)
+++ right.range * (glob)
@@ -1,8 +1,12 @@
- rev node index size depth
- + 9 f4b7da68b467 0 6 6
- 7 42b07e8da27d 0 4 4
- 7 42b07e8da27d 2 2 4
- 5 de561312eff4 0 2 2
- + 9 f4b7da68b467 4 2 6
- 0 1ea73414a91b 0 1 1
- 7 42b07e8da27d 3 1 4
- + 8 857477a9aebb 4 1 5
- 6 b9bc20507e0b 2 1 3
- 5 de561312eff4 1 1 2
- + 9 f4b7da68b467 5 1 6
+ rev node index size depth obshash
+ + 9 f4b7da68b467 0 6 6 000000000000
+ 7 42b07e8da27d 0 4 4 000000000000
+ 7 42b07e8da27d 2 2 4 000000000000
+ 5 de561312eff4 0 2 2 000000000000
+ + 9 f4b7da68b467 4 2 6 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 7 42b07e8da27d 3 1 4 000000000000
+ + 8 857477a9aebb 4 1 5 000000000000
+ 6 b9bc20507e0b 2 1 3 000000000000
+ 5 de561312eff4 1 1 2 000000000000
+ + 9 f4b7da68b467 5 1 6 000000000000
[1]
In this case, the bottom of the split will have multiple heads,
@@ -436,147 +436,147 @@
We are still able to reuse one of the branch however
$ hg debugstablerange --rev merge
- rev node index size depth
- 10 8aca7f8c9bd2 0 11 11
- 4 bebd167eb94d 0 5 5
- 3 2dc09a01254d 0 4 4
- 7 42b07e8da27d 0 4 4
- 10 8aca7f8c9bd2 8 3 11
- 3 2dc09a01254d 2 2 4
- 7 42b07e8da27d 2 2 4
- 1 66f7d451a68b 0 2 2
- 5 de561312eff4 0 2 2
- 9 f4b7da68b467 4 2 6
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 7 42b07e8da27d 3 1 4
- 1 66f7d451a68b 1 1 2
- 8 857477a9aebb 4 1 5
- 10 8aca7f8c9bd2 10 1 11
- 6 b9bc20507e0b 2 1 3
- 4 bebd167eb94d 4 1 5
- 5 de561312eff4 1 1 2
- 9 f4b7da68b467 5 1 6
+ rev node index size depth obshash
+ 10 8aca7f8c9bd2 0 11 11 000000000000
+ 4 bebd167eb94d 0 5 5 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 7 42b07e8da27d 0 4 4 000000000000
+ 10 8aca7f8c9bd2 8 3 11 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 7 42b07e8da27d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 5 de561312eff4 0 2 2 000000000000
+ 9 f4b7da68b467 4 2 6 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 7 42b07e8da27d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 8 857477a9aebb 4 1 5 000000000000
+ 10 8aca7f8c9bd2 10 1 11 000000000000
+ 6 b9bc20507e0b 2 1 3 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
+ 5 de561312eff4 1 1 2 000000000000
+ 9 f4b7da68b467 5 1 6 000000000000
$ hg debugstablerange --rev 'merge' > merge.range
$ diff -u left.range merge.range
--- left.range * (glob)
+++ merge.range * (glob)
@@ -1,10 +1,22 @@
- rev node index size depth
- + 10 8aca7f8c9bd2 0 11 11
- 4 bebd167eb94d 0 5 5
- 3 2dc09a01254d 0 4 4
- + 7 42b07e8da27d 0 4 4
- + 10 8aca7f8c9bd2 8 3 11
- 3 2dc09a01254d 2 2 4
- + 7 42b07e8da27d 2 2 4
- 1 66f7d451a68b 0 2 2
- + 5 de561312eff4 0 2 2
- + 9 f4b7da68b467 4 2 6
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- + 7 42b07e8da27d 3 1 4
- 1 66f7d451a68b 1 1 2
- + 8 857477a9aebb 4 1 5
- + 10 8aca7f8c9bd2 10 1 11
- + 6 b9bc20507e0b 2 1 3
- 4 bebd167eb94d 4 1 5
- + 5 de561312eff4 1 1 2
- + 9 f4b7da68b467 5 1 6
+ rev node index size depth obshash
+ + 10 8aca7f8c9bd2 0 11 11 000000000000
+ 4 bebd167eb94d 0 5 5 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ + 7 42b07e8da27d 0 4 4 000000000000
+ + 10 8aca7f8c9bd2 8 3 11 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ + 7 42b07e8da27d 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ + 5 de561312eff4 0 2 2 000000000000
+ + 9 f4b7da68b467 4 2 6 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ + 7 42b07e8da27d 3 1 4 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ + 8 857477a9aebb 4 1 5 000000000000
+ + 10 8aca7f8c9bd2 10 1 11 000000000000
+ + 6 b9bc20507e0b 2 1 3 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
+ + 5 de561312eff4 1 1 2 000000000000
+ + 9 f4b7da68b467 5 1 6 000000000000
[1]
$ diff -u right.range merge.range
--- right.range * (glob)
+++ merge.range * (glob)
@@ -1,12 +1,22 @@
- rev node index size depth
- - 9 f4b7da68b467 0 6 6
- + 10 8aca7f8c9bd2 0 11 11
- + 4 bebd167eb94d 0 5 5
- + 3 2dc09a01254d 0 4 4
- 7 42b07e8da27d 0 4 4
- + 10 8aca7f8c9bd2 8 3 11
- + 3 2dc09a01254d 2 2 4
- 7 42b07e8da27d 2 2 4
- + 1 66f7d451a68b 0 2 2
- 5 de561312eff4 0 2 2
- 9 f4b7da68b467 4 2 6
- + 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- + 3 2dc09a01254d 3 1 4
- 7 42b07e8da27d 3 1 4
- + 1 66f7d451a68b 1 1 2
- 8 857477a9aebb 4 1 5
- + 10 8aca7f8c9bd2 10 1 11
- 6 b9bc20507e0b 2 1 3
- + 4 bebd167eb94d 4 1 5
- 5 de561312eff4 1 1 2
- 9 f4b7da68b467 5 1 6
+ rev node index size depth obshash
+ - 9 f4b7da68b467 0 6 6 000000000000
+ + 10 8aca7f8c9bd2 0 11 11 000000000000
+ + 4 bebd167eb94d 0 5 5 000000000000
+ + 3 2dc09a01254d 0 4 4 000000000000
+ 7 42b07e8da27d 0 4 4 000000000000
+ + 10 8aca7f8c9bd2 8 3 11 000000000000
+ + 3 2dc09a01254d 2 2 4 000000000000
+ 7 42b07e8da27d 2 2 4 000000000000
+ + 1 66f7d451a68b 0 2 2 000000000000
+ 5 de561312eff4 0 2 2 000000000000
+ 9 f4b7da68b467 4 2 6 000000000000
+ + 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ + 3 2dc09a01254d 3 1 4 000000000000
+ 7 42b07e8da27d 3 1 4 000000000000
+ + 1 66f7d451a68b 1 1 2 000000000000
+ 8 857477a9aebb 4 1 5 000000000000
+ + 10 8aca7f8c9bd2 10 1 11 000000000000
+ 6 b9bc20507e0b 2 1 3 000000000000
+ + 4 bebd167eb94d 4 1 5 000000000000
+ 5 de561312eff4 1 1 2 000000000000
+ 9 f4b7da68b467 5 1 6 000000000000
[1]
Range above the merge, reuse subrange from the merge
$ hg debugstablerange --rev tip
- rev node index size depth
- 12 e6b8d5b46647 0 13 13
- 4 bebd167eb94d 0 5 5
- 12 e6b8d5b46647 8 5 13
- 3 2dc09a01254d 0 4 4
- 7 42b07e8da27d 0 4 4
- 11 485383494a89 8 4 12
- 3 2dc09a01254d 2 2 4
- 7 42b07e8da27d 2 2 4
- 11 485383494a89 10 2 12
- 1 66f7d451a68b 0 2 2
- 5 de561312eff4 0 2 2
- 9 f4b7da68b467 4 2 6
- 2 01241442b3c2 2 1 3
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 7 42b07e8da27d 3 1 4
- 11 485383494a89 11 1 12
- 1 66f7d451a68b 1 1 2
- 8 857477a9aebb 4 1 5
- 10 8aca7f8c9bd2 10 1 11
- 6 b9bc20507e0b 2 1 3
- 4 bebd167eb94d 4 1 5
- 5 de561312eff4 1 1 2
- 12 e6b8d5b46647 12 1 13
- 9 f4b7da68b467 5 1 6
+ rev node index size depth obshash
+ 12 e6b8d5b46647 0 13 13 000000000000
+ 4 bebd167eb94d 0 5 5 000000000000
+ 12 e6b8d5b46647 8 5 13 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 7 42b07e8da27d 0 4 4 000000000000
+ 11 485383494a89 8 4 12 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 7 42b07e8da27d 2 2 4 000000000000
+ 11 485383494a89 10 2 12 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 5 de561312eff4 0 2 2 000000000000
+ 9 f4b7da68b467 4 2 6 000000000000
+ 2 01241442b3c2 2 1 3 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 7 42b07e8da27d 3 1 4 000000000000
+ 11 485383494a89 11 1 12 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 8 857477a9aebb 4 1 5 000000000000
+ 10 8aca7f8c9bd2 10 1 11 000000000000
+ 6 b9bc20507e0b 2 1 3 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
+ 5 de561312eff4 1 1 2 000000000000
+ 12 e6b8d5b46647 12 1 13 000000000000
+ 9 f4b7da68b467 5 1 6 000000000000
$ hg debugstablerange --rev 'tip' > tip.range
$ diff -u merge.range tip.range
--- merge.range * (glob)
+++ tip.range * (glob)
@@ -1,11 +1,13 @@
- rev node index size depth
- - 10 8aca7f8c9bd2 0 11 11
- + 12 e6b8d5b46647 0 13 13
- 4 bebd167eb94d 0 5 5
- + 12 e6b8d5b46647 8 5 13
- 3 2dc09a01254d 0 4 4
- 7 42b07e8da27d 0 4 4
- - 10 8aca7f8c9bd2 8 3 11
- + 11 485383494a89 8 4 12
- 3 2dc09a01254d 2 2 4
- 7 42b07e8da27d 2 2 4
- + 11 485383494a89 10 2 12
- 1 66f7d451a68b 0 2 2
- 5 de561312eff4 0 2 2
- 9 f4b7da68b467 4 2 6
+ rev node index size depth obshash
+ - 10 8aca7f8c9bd2 0 11 11 000000000000
+ + 12 e6b8d5b46647 0 13 13 000000000000
+ 4 bebd167eb94d 0 5 5 000000000000
+ + 12 e6b8d5b46647 8 5 13 000000000000
+ 3 2dc09a01254d 0 4 4 000000000000
+ 7 42b07e8da27d 0 4 4 000000000000
+ - 10 8aca7f8c9bd2 8 3 11 000000000000
+ + 11 485383494a89 8 4 12 000000000000
+ 3 2dc09a01254d 2 2 4 000000000000
+ 7 42b07e8da27d 2 2 4 000000000000
+ + 11 485383494a89 10 2 12 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 5 de561312eff4 0 2 2 000000000000
+ 9 f4b7da68b467 4 2 6 000000000000
@@ -13,10 +15,12 @@
- 0 1ea73414a91b 0 1 1
- 3 2dc09a01254d 3 1 4
- 7 42b07e8da27d 3 1 4
- + 11 485383494a89 11 1 12
- 1 66f7d451a68b 1 1 2
- 8 857477a9aebb 4 1 5
- 10 8aca7f8c9bd2 10 1 11
- 6 b9bc20507e0b 2 1 3
- 4 bebd167eb94d 4 1 5
- 5 de561312eff4 1 1 2
- + 12 e6b8d5b46647 12 1 13
- 9 f4b7da68b467 5 1 6
+ 0 1ea73414a91b 0 1 1 000000000000
+ 3 2dc09a01254d 3 1 4 000000000000
+ 7 42b07e8da27d 3 1 4 000000000000
+ + 11 485383494a89 11 1 12 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 8 857477a9aebb 4 1 5 000000000000
+ 10 8aca7f8c9bd2 10 1 11 000000000000
+ 6 b9bc20507e0b 2 1 3 000000000000
+ 4 bebd167eb94d 4 1 5 000000000000
+ 5 de561312eff4 1 1 2 000000000000
+ + 12 e6b8d5b46647 12 1 13 000000000000
+ 9 f4b7da68b467 5 1 6 000000000000
[1]
$ cd ..
@@ -633,40 +633,40 @@
o 0 1ea73414a91b r0
$ hg debugstablerange --rev 'head()'
- rev node index size depth
- 15 1d8d22637c2d 0 8 8
- 9 dcbb326fdec2 0 7 7
- 10 ff43616e5d0f 0 7 7
- 13 b4594d867745 0 6 6
- 12 e46a4836065c 0 6 6
- 6 2702dd0c91e7 0 5 5
- 15 1d8d22637c2d 4 4 8
- 3 2b6d669947cd 0 4 4
- 5 f0f3ef9a6cd5 0 4 4
- 9 dcbb326fdec2 4 3 7
- 10 ff43616e5d0f 4 3 7
- 15 1d8d22637c2d 6 2 8
- 3 2b6d669947cd 2 2 4
- 1 66f7d451a68b 0 2 2
- 13 b4594d867745 4 2 6
- 8 d62d843c9a01 4 2 6
- 12 e46a4836065c 4 2 6
- 5 f0f3ef9a6cd5 2 2 4
- 2 fa942426a6fd 0 2 2
- 15 1d8d22637c2d 7 1 8
- 0 1ea73414a91b 0 1 1
- 6 2702dd0c91e7 4 1 5
- 3 2b6d669947cd 3 1 4
- 14 43227190fef8 4 1 5
- 4 4c748ffd1a46 2 1 3
- 1 66f7d451a68b 1 1 2
- 13 b4594d867745 5 1 6
- 11 bab5d5bf48bd 4 1 5
- 8 d62d843c9a01 5 1 6
- 9 dcbb326fdec2 6 1 7
- 12 e46a4836065c 5 1 6
- 7 e7d9710d9fc6 4 1 5
- 5 f0f3ef9a6cd5 3 1 4
- 2 fa942426a6fd 1 1 2
- 10 ff43616e5d0f 6 1 7
+ rev node index size depth obshash
+ 15 1d8d22637c2d 0 8 8 000000000000
+ 9 dcbb326fdec2 0 7 7 000000000000
+ 10 ff43616e5d0f 0 7 7 000000000000
+ 13 b4594d867745 0 6 6 000000000000
+ 12 e46a4836065c 0 6 6 000000000000
+ 6 2702dd0c91e7 0 5 5 000000000000
+ 15 1d8d22637c2d 4 4 8 000000000000
+ 3 2b6d669947cd 0 4 4 000000000000
+ 5 f0f3ef9a6cd5 0 4 4 000000000000
+ 9 dcbb326fdec2 4 3 7 000000000000
+ 10 ff43616e5d0f 4 3 7 000000000000
+ 15 1d8d22637c2d 6 2 8 000000000000
+ 3 2b6d669947cd 2 2 4 000000000000
+ 1 66f7d451a68b 0 2 2 000000000000
+ 13 b4594d867745 4 2 6 000000000000
+ 8 d62d843c9a01 4 2 6 000000000000
+ 12 e46a4836065c 4 2 6 000000000000
+ 5 f0f3ef9a6cd5 2 2 4 000000000000
+ 2 fa942426a6fd 0 2 2 000000000000
+ 15 1d8d22637c2d 7 1 8 000000000000
+ 0 1ea73414a91b 0 1 1 000000000000
+ 6 2702dd0c91e7 4 1 5 000000000000
+ 3 2b6d669947cd 3 1 4 000000000000
+ 14 43227190fef8 4 1 5 000000000000
+ 4 4c748ffd1a46 2 1 3 000000000000
+ 1 66f7d451a68b 1 1 2 000000000000
+ 13 b4594d867745 5 1 6 000000000000
+ 11 bab5d5bf48bd 4 1 5 000000000000
+ 8 d62d843c9a01 5 1 6 000000000000
+ 9 dcbb326fdec2 6 1 7 000000000000
+ 12 e46a4836065c 5 1 6 000000000000
+ 7 e7d9710d9fc6 4 1 5 000000000000
+ 5 f0f3ef9a6cd5 3 1 4 000000000000
+ 2 fa942426a6fd 1 1 2 000000000000
+ 10 ff43616e5d0f 6 1 7 000000000000
$ cd ..