comparison tests/test-stablerange-branchpoint.t @ 3258:af1f8f0687e1

stablerange: introduce a basic-mergepoint method This method use the new 'mergepoint' based stable sorting. It is expected to be eventually better than branch point to stable range: more stable, easier to cache, etc. Having a basic implementation will allow use to validate more advanced implementation.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 10 Dec 2017 01:06:16 +0100
parents tests/test-stablerange.t@d57400a0f4c3
children 39739c2257e3
comparison
equal deleted inserted replaced
3257:064738ae1588 3258:af1f8f0687e1
1 Test for stable ordering capabilities
2 =====================================
3
4 $ . $TESTDIR/testlib/pythonpath.sh
5
6 $ cat << EOF >> $HGRCPATH
7 > [extensions]
8 > hgext3rd.evolve =
9 > [ui]
10 > logtemplate = "{rev} {node|short} {desc} {tags}\n"
11 > [defaults]
12 > debugstablerange = --method branchpoint
13 > EOF
14
15 Simple linear test
16 ==================
17
18 $ hg init repo_linear
19 $ cd repo_linear
20 $ hg debugbuilddag '.+6'
21 $ hg debugdepth -r 'all()'
22 1ea73414a91b 1
23 66f7d451a68b 2
24 01241442b3c2 3
25 2dc09a01254d 4
26 bebd167eb94d 5
27 c8d03c1b5e94 6
28 f69452c5b1af 7
29 $ hg debugstablerange --verify --verbose --subranges --rev 1
30 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
31 1ea73414a91b-0 (0, 1, 1) [leaf] -
32 66f7d451a68b-1 (1, 2, 1) [leaf] -
33 $ hg debugstablerange --verify --verbose --subranges --rev 1 > 1.range
34
35 bigger subset reuse most of the previous one
36
37 $ hg debugstablerange --verify --verbose --subranges --rev 4
38 bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
39 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
40 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
41 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
42 01241442b3c2-2 (2, 3, 1) [leaf] -
43 1ea73414a91b-0 (0, 1, 1) [leaf] -
44 2dc09a01254d-3 (3, 4, 1) [leaf] -
45 66f7d451a68b-1 (1, 2, 1) [leaf] -
46 bebd167eb94d-4 (4, 5, 1) [leaf] -
47 $ hg debugstablerange --verify --verbose --subranges --rev 4 > 4.range
48 $ diff -u 1.range 4.range
49 --- 1.range * (glob)
50 +++ 4.range * (glob)
51 @@ -1,3 +1,9 @@
52 +bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
53 +2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
54 +2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
55 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
56 +01241442b3c2-2 (2, 3, 1) [leaf] -
57 1ea73414a91b-0 (0, 1, 1) [leaf] -
58 +2dc09a01254d-3 (3, 4, 1) [leaf] -
59 66f7d451a68b-1 (1, 2, 1) [leaf] -
60 +bebd167eb94d-4 (4, 5, 1) [leaf] -
61 [1]
62
63 Using a range not ending on 2**N boundary
64 we fall back on 2**N as much as possible
65
66 $ hg debugstablerange --verify --verbose --subranges --rev 5
67 c8d03c1b5e94-0 (5, 6, 6) [complete] - 2dc09a01254d-0 (3, 4, 4), c8d03c1b5e94-4 (5, 6, 2)
68 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
69 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
70 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
71 c8d03c1b5e94-4 (5, 6, 2) [complete] - bebd167eb94d-4 (4, 5, 1), c8d03c1b5e94-5 (5, 6, 1)
72 01241442b3c2-2 (2, 3, 1) [leaf] -
73 1ea73414a91b-0 (0, 1, 1) [leaf] -
74 2dc09a01254d-3 (3, 4, 1) [leaf] -
75 66f7d451a68b-1 (1, 2, 1) [leaf] -
76 bebd167eb94d-4 (4, 5, 1) [leaf] -
77 c8d03c1b5e94-5 (5, 6, 1) [leaf] -
78 $ hg debugstablerange --verify --verbose --subranges --rev 5 > 5.range
79 $ diff -u 4.range 5.range
80 --- 4.range * (glob)
81 +++ 5.range * (glob)
82 @@ -1,9 +1,11 @@
83 -bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
84 +c8d03c1b5e94-0 (5, 6, 6) [complete] - 2dc09a01254d-0 (3, 4, 4), c8d03c1b5e94-4 (5, 6, 2)
85 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
86 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
87 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
88 +c8d03c1b5e94-4 (5, 6, 2) [complete] - bebd167eb94d-4 (4, 5, 1), c8d03c1b5e94-5 (5, 6, 1)
89 01241442b3c2-2 (2, 3, 1) [leaf] -
90 1ea73414a91b-0 (0, 1, 1) [leaf] -
91 2dc09a01254d-3 (3, 4, 1) [leaf] -
92 66f7d451a68b-1 (1, 2, 1) [leaf] -
93 bebd167eb94d-4 (4, 5, 1) [leaf] -
94 +c8d03c1b5e94-5 (5, 6, 1) [leaf] -
95 [1]
96
97 Even two unperfect range overlap a lot
98
99 $ hg debugstablerange --verify --verbose --subranges --rev tip
100 f69452c5b1af-0 (6, 7, 7) [complete] - 2dc09a01254d-0 (3, 4, 4), f69452c5b1af-4 (6, 7, 3)
101 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
102 f69452c5b1af-4 (6, 7, 3) [complete] - c8d03c1b5e94-4 (5, 6, 2), f69452c5b1af-6 (6, 7, 1)
103 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
104 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
105 c8d03c1b5e94-4 (5, 6, 2) [complete] - bebd167eb94d-4 (4, 5, 1), c8d03c1b5e94-5 (5, 6, 1)
106 01241442b3c2-2 (2, 3, 1) [leaf] -
107 1ea73414a91b-0 (0, 1, 1) [leaf] -
108 2dc09a01254d-3 (3, 4, 1) [leaf] -
109 66f7d451a68b-1 (1, 2, 1) [leaf] -
110 bebd167eb94d-4 (4, 5, 1) [leaf] -
111 c8d03c1b5e94-5 (5, 6, 1) [leaf] -
112 f69452c5b1af-6 (6, 7, 1) [leaf] -
113 $ hg debugstablerange --verify --verbose --subranges --rev tip > tip.range
114 $ diff -u 5.range tip.range
115 --- 5.range * (glob)
116 +++ tip.range * (glob)
117 @@ -1,5 +1,6 @@
118 -c8d03c1b5e94-0 (5, 6, 6) [complete] - 2dc09a01254d-0 (3, 4, 4), c8d03c1b5e94-4 (5, 6, 2)
119 +f69452c5b1af-0 (6, 7, 7) [complete] - 2dc09a01254d-0 (3, 4, 4), f69452c5b1af-4 (6, 7, 3)
120 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
121 +f69452c5b1af-4 (6, 7, 3) [complete] - c8d03c1b5e94-4 (5, 6, 2), f69452c5b1af-6 (6, 7, 1)
122 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
123 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
124 c8d03c1b5e94-4 (5, 6, 2) [complete] - bebd167eb94d-4 (4, 5, 1), c8d03c1b5e94-5 (5, 6, 1)
125 @@ -9,3 +10,4 @@
126 66f7d451a68b-1 (1, 2, 1) [leaf] -
127 bebd167eb94d-4 (4, 5, 1) [leaf] -
128 c8d03c1b5e94-5 (5, 6, 1) [leaf] -
129 +f69452c5b1af-6 (6, 7, 1) [leaf] -
130 [1]
131
132 $ cd ..
133
134 Case with merge
135 ===============
136
137 Simple case: branching is on a boundary
138 --------------------------------------------
139
140 $ hg init repo_merge_split_on_boundary
141 $ cd repo_merge_split_on_boundary
142 $ hg debugbuilddag '.:base
143 > +3:left
144 > <base+3:right
145 > <left/right:merge
146 > +2:head
147 > '
148 $ hg log -G
149 o 9 0338daf18215 r9 head tip
150 |
151 o 8 71b32fcf3f71 r8
152 |
153 o 7 5f18015f9110 r7 merge
154 |\
155 | o 6 a2f58e9c1e56 r6 right
156 | |
157 | o 5 3a367db1fabc r5
158 | |
159 | o 4 e7bd5218ca15 r4
160 | |
161 o | 3 2dc09a01254d r3 left
162 | |
163 o | 2 01241442b3c2 r2
164 | |
165 o | 1 66f7d451a68b r1
166 |/
167 o 0 1ea73414a91b r0 base
168
169 $ hg debugdepth -r 'all()'
170 1ea73414a91b 1
171 66f7d451a68b 2
172 01241442b3c2 3
173 2dc09a01254d 4
174 e7bd5218ca15 2
175 3a367db1fabc 3
176 a2f58e9c1e56 4
177 5f18015f9110 8
178 71b32fcf3f71 9
179 0338daf18215 10
180
181 Each of the linear branch reuse range internally
182
183 (left branch)
184
185 $ hg debugstablerange --verify --verbose --subranges --rev 'left~2'
186 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
187 1ea73414a91b-0 (0, 1, 1) [leaf] -
188 66f7d451a68b-1 (1, 2, 1) [leaf] -
189 $ hg debugstablerange --verify --verbose --subranges --rev 'left~2' > left-2.range
190 $ hg debugstablerange --verify --verbose --subranges --rev left
191 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
192 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
193 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
194 01241442b3c2-2 (2, 3, 1) [leaf] -
195 1ea73414a91b-0 (0, 1, 1) [leaf] -
196 2dc09a01254d-3 (3, 4, 1) [leaf] -
197 66f7d451a68b-1 (1, 2, 1) [leaf] -
198 $ hg debugstablerange --verify --verbose --subranges --rev 'left' > left.range
199 $ diff -u left-2.range left.range
200 --- left-2.range * (glob)
201 +++ left.range * (glob)
202 @@ -1,3 +1,7 @@
203 +2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
204 +2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
205 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
206 +01241442b3c2-2 (2, 3, 1) [leaf] -
207 1ea73414a91b-0 (0, 1, 1) [leaf] -
208 +2dc09a01254d-3 (3, 4, 1) [leaf] -
209 66f7d451a68b-1 (1, 2, 1) [leaf] -
210 [1]
211
212 (right branch)
213
214 $ hg debugstablerange --verify --verbose --subranges --rev right~2
215 e7bd5218ca15-0 (4, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), e7bd5218ca15-1 (4, 2, 1)
216 1ea73414a91b-0 (0, 1, 1) [leaf] -
217 e7bd5218ca15-1 (4, 2, 1) [leaf] -
218 $ hg debugstablerange --verify --verbose --subranges --rev 'right~2' > right-2.range
219 $ hg debugstablerange --verify --verbose --subranges --rev right
220 a2f58e9c1e56-0 (6, 4, 4) [complete] - e7bd5218ca15-0 (4, 2, 2), a2f58e9c1e56-2 (6, 4, 2)
221 a2f58e9c1e56-2 (6, 4, 2) [complete] - 3a367db1fabc-2 (5, 3, 1), a2f58e9c1e56-3 (6, 4, 1)
222 e7bd5218ca15-0 (4, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), e7bd5218ca15-1 (4, 2, 1)
223 1ea73414a91b-0 (0, 1, 1) [leaf] -
224 3a367db1fabc-2 (5, 3, 1) [leaf] -
225 a2f58e9c1e56-3 (6, 4, 1) [leaf] -
226 e7bd5218ca15-1 (4, 2, 1) [leaf] -
227 $ hg debugstablerange --verify --verbose --subranges --rev 'right' > right.range
228 $ diff -u right-2.range right.range
229 --- right-2.range * (glob)
230 +++ right.range * (glob)
231 @@ -1,3 +1,7 @@
232 +a2f58e9c1e56-0 (6, 4, 4) [complete] - e7bd5218ca15-0 (4, 2, 2), a2f58e9c1e56-2 (6, 4, 2)
233 +a2f58e9c1e56-2 (6, 4, 2) [complete] - 3a367db1fabc-2 (5, 3, 1), a2f58e9c1e56-3 (6, 4, 1)
234 e7bd5218ca15-0 (4, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), e7bd5218ca15-1 (4, 2, 1)
235 1ea73414a91b-0 (0, 1, 1) [leaf] -
236 +3a367db1fabc-2 (5, 3, 1) [leaf] -
237 +a2f58e9c1e56-3 (6, 4, 1) [leaf] -
238 e7bd5218ca15-1 (4, 2, 1) [leaf] -
239 [1]
240
241 The merge reuse as much of the slicing created for one of the branch
242
243 $ hg debugstablerange --verify --verbose --subranges --rev merge
244 5f18015f9110-0 (7, 8, 8) [complete] - 2dc09a01254d-0 (3, 4, 4), 5f18015f9110-4 (7, 8, 4)
245 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
246 5f18015f9110-4 (7, 8, 4) [complete] - 3a367db1fabc-1 (5, 3, 2), 5f18015f9110-6 (7, 8, 2)
247 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
248 3a367db1fabc-1 (5, 3, 2) [complete] - e7bd5218ca15-1 (4, 2, 1), 3a367db1fabc-2 (5, 3, 1)
249 5f18015f9110-6 (7, 8, 2) [complete] - a2f58e9c1e56-3 (6, 4, 1), 5f18015f9110-7 (7, 8, 1)
250 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
251 01241442b3c2-2 (2, 3, 1) [leaf] -
252 1ea73414a91b-0 (0, 1, 1) [leaf] -
253 2dc09a01254d-3 (3, 4, 1) [leaf] -
254 3a367db1fabc-2 (5, 3, 1) [leaf] -
255 5f18015f9110-7 (7, 8, 1) [leaf] -
256 66f7d451a68b-1 (1, 2, 1) [leaf] -
257 a2f58e9c1e56-3 (6, 4, 1) [leaf] -
258 e7bd5218ca15-1 (4, 2, 1) [leaf] -
259 $ hg debugstablerange --verify --verbose --subranges --rev 'merge' > merge.range
260 $ diff -u left.range merge.range
261 --- left.range * (glob)
262 +++ merge.range * (glob)
263 @@ -1,7 +1,15 @@
264 +5f18015f9110-0 (7, 8, 8) [complete] - 2dc09a01254d-0 (3, 4, 4), 5f18015f9110-4 (7, 8, 4)
265 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
266 +5f18015f9110-4 (7, 8, 4) [complete] - 3a367db1fabc-1 (5, 3, 2), 5f18015f9110-6 (7, 8, 2)
267 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
268 +3a367db1fabc-1 (5, 3, 2) [complete] - e7bd5218ca15-1 (4, 2, 1), 3a367db1fabc-2 (5, 3, 1)
269 +5f18015f9110-6 (7, 8, 2) [complete] - a2f58e9c1e56-3 (6, 4, 1), 5f18015f9110-7 (7, 8, 1)
270 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
271 01241442b3c2-2 (2, 3, 1) [leaf] -
272 1ea73414a91b-0 (0, 1, 1) [leaf] -
273 2dc09a01254d-3 (3, 4, 1) [leaf] -
274 +3a367db1fabc-2 (5, 3, 1) [leaf] -
275 +5f18015f9110-7 (7, 8, 1) [leaf] -
276 66f7d451a68b-1 (1, 2, 1) [leaf] -
277 +a2f58e9c1e56-3 (6, 4, 1) [leaf] -
278 +e7bd5218ca15-1 (4, 2, 1) [leaf] -
279 [1]
280 $ diff -u right.range merge.range
281 --- right.range * (glob)
282 +++ merge.range * (glob)
283 @@ -1,7 +1,15 @@
284 -a2f58e9c1e56-0 (6, 4, 4) [complete] - e7bd5218ca15-0 (4, 2, 2), a2f58e9c1e56-2 (6, 4, 2)
285 -a2f58e9c1e56-2 (6, 4, 2) [complete] - 3a367db1fabc-2 (5, 3, 1), a2f58e9c1e56-3 (6, 4, 1)
286 -e7bd5218ca15-0 (4, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), e7bd5218ca15-1 (4, 2, 1)
287 +5f18015f9110-0 (7, 8, 8) [complete] - 2dc09a01254d-0 (3, 4, 4), 5f18015f9110-4 (7, 8, 4)
288 +2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
289 +5f18015f9110-4 (7, 8, 4) [complete] - 3a367db1fabc-1 (5, 3, 2), 5f18015f9110-6 (7, 8, 2)
290 +2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
291 +3a367db1fabc-1 (5, 3, 2) [complete] - e7bd5218ca15-1 (4, 2, 1), 3a367db1fabc-2 (5, 3, 1)
292 +5f18015f9110-6 (7, 8, 2) [complete] - a2f58e9c1e56-3 (6, 4, 1), 5f18015f9110-7 (7, 8, 1)
293 +66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
294 +01241442b3c2-2 (2, 3, 1) [leaf] -
295 1ea73414a91b-0 (0, 1, 1) [leaf] -
296 +2dc09a01254d-3 (3, 4, 1) [leaf] -
297 3a367db1fabc-2 (5, 3, 1) [leaf] -
298 +5f18015f9110-7 (7, 8, 1) [leaf] -
299 +66f7d451a68b-1 (1, 2, 1) [leaf] -
300 a2f58e9c1e56-3 (6, 4, 1) [leaf] -
301 e7bd5218ca15-1 (4, 2, 1) [leaf] -
302 [1]
303 $ cd ..
304
305 slice create multiple heads
306 ---------------------------
307
308 $ hg init repo_merge_split_heads
309 $ cd repo_merge_split_heads
310 $ hg debugbuilddag '.:base
311 > +4:left
312 > <base+5:right
313 > <left/right:merge
314 > +2:head
315 > '
316 $ hg debugbuilddag '.:base
317 > +3:left
318 > <base+3:right
319 > <left/right:merge
320 > +2:head
321 > '
322 abort: repository is not empty
323 [255]
324 $ hg log -G
325 o 12 e6b8d5b46647 r12 head tip
326 |
327 o 11 485383494a89 r11
328 |
329 o 10 8aca7f8c9bd2 r10 merge
330 |\
331 | o 9 f4b7da68b467 r9 right
332 | |
333 | o 8 857477a9aebb r8
334 | |
335 | o 7 42b07e8da27d r7
336 | |
337 | o 6 b9bc20507e0b r6
338 | |
339 | o 5 de561312eff4 r5
340 | |
341 o | 4 bebd167eb94d r4 left
342 | |
343 o | 3 2dc09a01254d r3
344 | |
345 o | 2 01241442b3c2 r2
346 | |
347 o | 1 66f7d451a68b r1
348 |/
349 o 0 1ea73414a91b r0 base
350
351 $ hg debugdepth -r 'all()'
352 1ea73414a91b 1
353 66f7d451a68b 2
354 01241442b3c2 3
355 2dc09a01254d 4
356 bebd167eb94d 5
357 de561312eff4 2
358 b9bc20507e0b 3
359 42b07e8da27d 4
360 857477a9aebb 5
361 f4b7da68b467 6
362 8aca7f8c9bd2 11
363 485383494a89 12
364 e6b8d5b46647 13
365
366 Each of the linear branch reuse range internally
367
368 (left branch)
369
370 $ hg debugstablerange --verify --verbose --subranges --rev 'left~2'
371 01241442b3c2-0 (2, 3, 3) [complete] - 66f7d451a68b-0 (1, 2, 2), 01241442b3c2-2 (2, 3, 1)
372 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
373 01241442b3c2-2 (2, 3, 1) [leaf] -
374 1ea73414a91b-0 (0, 1, 1) [leaf] -
375 66f7d451a68b-1 (1, 2, 1) [leaf] -
376 $ hg debugstablerange --verify --verbose --subranges --rev 'left~2' > left-2.range
377 $ hg debugstablerange --verify --verbose --subranges --rev left
378 bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
379 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
380 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
381 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
382 01241442b3c2-2 (2, 3, 1) [leaf] -
383 1ea73414a91b-0 (0, 1, 1) [leaf] -
384 2dc09a01254d-3 (3, 4, 1) [leaf] -
385 66f7d451a68b-1 (1, 2, 1) [leaf] -
386 bebd167eb94d-4 (4, 5, 1) [leaf] -
387 $ hg debugstablerange --verify --verbose --subranges --rev 'left' > left.range
388 $ diff -u left-2.range left.range
389 --- left-2.range * (glob)
390 +++ left.range * (glob)
391 @@ -1,5 +1,9 @@
392 -01241442b3c2-0 (2, 3, 3) [complete] - 66f7d451a68b-0 (1, 2, 2), 01241442b3c2-2 (2, 3, 1)
393 +bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
394 +2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
395 +2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
396 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
397 01241442b3c2-2 (2, 3, 1) [leaf] -
398 1ea73414a91b-0 (0, 1, 1) [leaf] -
399 +2dc09a01254d-3 (3, 4, 1) [leaf] -
400 66f7d451a68b-1 (1, 2, 1) [leaf] -
401 +bebd167eb94d-4 (4, 5, 1) [leaf] -
402 [1]
403
404 (right branch)
405
406 $ hg debugstablerange --verify --verbose --subranges --rev right~2
407 42b07e8da27d-0 (7, 4, 4) [complete] - de561312eff4-0 (5, 2, 2), 42b07e8da27d-2 (7, 4, 2)
408 42b07e8da27d-2 (7, 4, 2) [complete] - b9bc20507e0b-2 (6, 3, 1), 42b07e8da27d-3 (7, 4, 1)
409 de561312eff4-0 (5, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), de561312eff4-1 (5, 2, 1)
410 1ea73414a91b-0 (0, 1, 1) [leaf] -
411 42b07e8da27d-3 (7, 4, 1) [leaf] -
412 b9bc20507e0b-2 (6, 3, 1) [leaf] -
413 de561312eff4-1 (5, 2, 1) [leaf] -
414 $ hg debugstablerange --verify --verbose --subranges --rev 'right~2' > right-2.range
415 $ hg debugstablerange --verify --verbose --subranges --rev right
416 f4b7da68b467-0 (9, 6, 6) [complete] - 42b07e8da27d-0 (7, 4, 4), f4b7da68b467-4 (9, 6, 2)
417 42b07e8da27d-0 (7, 4, 4) [complete] - de561312eff4-0 (5, 2, 2), 42b07e8da27d-2 (7, 4, 2)
418 42b07e8da27d-2 (7, 4, 2) [complete] - b9bc20507e0b-2 (6, 3, 1), 42b07e8da27d-3 (7, 4, 1)
419 de561312eff4-0 (5, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), de561312eff4-1 (5, 2, 1)
420 f4b7da68b467-4 (9, 6, 2) [complete] - 857477a9aebb-4 (8, 5, 1), f4b7da68b467-5 (9, 6, 1)
421 1ea73414a91b-0 (0, 1, 1) [leaf] -
422 42b07e8da27d-3 (7, 4, 1) [leaf] -
423 857477a9aebb-4 (8, 5, 1) [leaf] -
424 b9bc20507e0b-2 (6, 3, 1) [leaf] -
425 de561312eff4-1 (5, 2, 1) [leaf] -
426 f4b7da68b467-5 (9, 6, 1) [leaf] -
427 $ hg debugstablerange --verify --verbose --subranges --rev 'right' > right.range
428 $ diff -u right-2.range right.range
429 --- right-2.range * (glob)
430 +++ right.range * (glob)
431 @@ -1,7 +1,11 @@
432 +f4b7da68b467-0 (9, 6, 6) [complete] - 42b07e8da27d-0 (7, 4, 4), f4b7da68b467-4 (9, 6, 2)
433 42b07e8da27d-0 (7, 4, 4) [complete] - de561312eff4-0 (5, 2, 2), 42b07e8da27d-2 (7, 4, 2)
434 42b07e8da27d-2 (7, 4, 2) [complete] - b9bc20507e0b-2 (6, 3, 1), 42b07e8da27d-3 (7, 4, 1)
435 de561312eff4-0 (5, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), de561312eff4-1 (5, 2, 1)
436 +f4b7da68b467-4 (9, 6, 2) [complete] - 857477a9aebb-4 (8, 5, 1), f4b7da68b467-5 (9, 6, 1)
437 1ea73414a91b-0 (0, 1, 1) [leaf] -
438 42b07e8da27d-3 (7, 4, 1) [leaf] -
439 +857477a9aebb-4 (8, 5, 1) [leaf] -
440 b9bc20507e0b-2 (6, 3, 1) [leaf] -
441 de561312eff4-1 (5, 2, 1) [leaf] -
442 +f4b7da68b467-5 (9, 6, 1) [leaf] -
443 [1]
444
445 In this case, the bottom of the split will have multiple heads,
446
447 So we'll create more than 1 subrange out of it.
448
449 We are still able to reuse one of the branch however
450
451 $ hg debugstablerange --verify --verbose --subranges --rev merge
452 8aca7f8c9bd2-0 (10, 11, 11) [complete] - bebd167eb94d-0 (4, 5, 5), 42b07e8da27d-1 (7, 4, 3), 8aca7f8c9bd2-8 (10, 11, 3)
453 bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
454 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
455 42b07e8da27d-1 (7, 4, 3) [complete] - de561312eff4-1 (5, 2, 1), 42b07e8da27d-2 (7, 4, 2)
456 8aca7f8c9bd2-8 (10, 11, 3) [complete] - f4b7da68b467-4 (9, 6, 2), 8aca7f8c9bd2-10 (10, 11, 1)
457 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
458 42b07e8da27d-2 (7, 4, 2) [complete] - b9bc20507e0b-2 (6, 3, 1), 42b07e8da27d-3 (7, 4, 1)
459 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
460 f4b7da68b467-4 (9, 6, 2) [complete] - 857477a9aebb-4 (8, 5, 1), f4b7da68b467-5 (9, 6, 1)
461 01241442b3c2-2 (2, 3, 1) [leaf] -
462 1ea73414a91b-0 (0, 1, 1) [leaf] -
463 2dc09a01254d-3 (3, 4, 1) [leaf] -
464 42b07e8da27d-3 (7, 4, 1) [leaf] -
465 66f7d451a68b-1 (1, 2, 1) [leaf] -
466 857477a9aebb-4 (8, 5, 1) [leaf] -
467 8aca7f8c9bd2-10 (10, 11, 1) [leaf] -
468 b9bc20507e0b-2 (6, 3, 1) [leaf] -
469 bebd167eb94d-4 (4, 5, 1) [leaf] -
470 de561312eff4-1 (5, 2, 1) [leaf] -
471 f4b7da68b467-5 (9, 6, 1) [leaf] -
472 $ hg debugstablerange --verify --verbose --subranges --rev 'merge' > merge.range
473 $ diff -u left.range merge.range
474 --- left.range * (glob)
475 +++ merge.range * (glob)
476 @@ -1,9 +1,20 @@
477 +8aca7f8c9bd2-0 (10, 11, 11) [complete] - bebd167eb94d-0 (4, 5, 5), 42b07e8da27d-1 (7, 4, 3), 8aca7f8c9bd2-8 (10, 11, 3)
478 bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
479 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
480 +42b07e8da27d-1 (7, 4, 3) [complete] - de561312eff4-1 (5, 2, 1), 42b07e8da27d-2 (7, 4, 2)
481 +8aca7f8c9bd2-8 (10, 11, 3) [complete] - f4b7da68b467-4 (9, 6, 2), 8aca7f8c9bd2-10 (10, 11, 1)
482 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
483 +42b07e8da27d-2 (7, 4, 2) [complete] - b9bc20507e0b-2 (6, 3, 1), 42b07e8da27d-3 (7, 4, 1)
484 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
485 +f4b7da68b467-4 (9, 6, 2) [complete] - 857477a9aebb-4 (8, 5, 1), f4b7da68b467-5 (9, 6, 1)
486 01241442b3c2-2 (2, 3, 1) [leaf] -
487 1ea73414a91b-0 (0, 1, 1) [leaf] -
488 2dc09a01254d-3 (3, 4, 1) [leaf] -
489 +42b07e8da27d-3 (7, 4, 1) [leaf] -
490 66f7d451a68b-1 (1, 2, 1) [leaf] -
491 +857477a9aebb-4 (8, 5, 1) [leaf] -
492 +8aca7f8c9bd2-10 (10, 11, 1) [leaf] -
493 +b9bc20507e0b-2 (6, 3, 1) [leaf] -
494 bebd167eb94d-4 (4, 5, 1) [leaf] -
495 +de561312eff4-1 (5, 2, 1) [leaf] -
496 +f4b7da68b467-5 (9, 6, 1) [leaf] -
497 [1]
498 $ diff -u right.range merge.range
499 --- right.range * (glob)
500 +++ merge.range * (glob)
501 @@ -1,11 +1,20 @@
502 -f4b7da68b467-0 (9, 6, 6) [complete] - 42b07e8da27d-0 (7, 4, 4), f4b7da68b467-4 (9, 6, 2)
503 -42b07e8da27d-0 (7, 4, 4) [complete] - de561312eff4-0 (5, 2, 2), 42b07e8da27d-2 (7, 4, 2)
504 +8aca7f8c9bd2-0 (10, 11, 11) [complete] - bebd167eb94d-0 (4, 5, 5), 42b07e8da27d-1 (7, 4, 3), 8aca7f8c9bd2-8 (10, 11, 3)
505 +bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
506 +2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
507 +42b07e8da27d-1 (7, 4, 3) [complete] - de561312eff4-1 (5, 2, 1), 42b07e8da27d-2 (7, 4, 2)
508 +8aca7f8c9bd2-8 (10, 11, 3) [complete] - f4b7da68b467-4 (9, 6, 2), 8aca7f8c9bd2-10 (10, 11, 1)
509 +2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
510 42b07e8da27d-2 (7, 4, 2) [complete] - b9bc20507e0b-2 (6, 3, 1), 42b07e8da27d-3 (7, 4, 1)
511 -de561312eff4-0 (5, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), de561312eff4-1 (5, 2, 1)
512 +66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
513 f4b7da68b467-4 (9, 6, 2) [complete] - 857477a9aebb-4 (8, 5, 1), f4b7da68b467-5 (9, 6, 1)
514 +01241442b3c2-2 (2, 3, 1) [leaf] -
515 1ea73414a91b-0 (0, 1, 1) [leaf] -
516 +2dc09a01254d-3 (3, 4, 1) [leaf] -
517 42b07e8da27d-3 (7, 4, 1) [leaf] -
518 +66f7d451a68b-1 (1, 2, 1) [leaf] -
519 857477a9aebb-4 (8, 5, 1) [leaf] -
520 +8aca7f8c9bd2-10 (10, 11, 1) [leaf] -
521 b9bc20507e0b-2 (6, 3, 1) [leaf] -
522 +bebd167eb94d-4 (4, 5, 1) [leaf] -
523 de561312eff4-1 (5, 2, 1) [leaf] -
524 f4b7da68b467-5 (9, 6, 1) [leaf] -
525 [1]
526
527 Range above the merge, reuse subrange from the merge
528
529 $ hg debugstablerange --verify --verbose --subranges --rev tip
530 e6b8d5b46647-0 (12, 13, 13) [complete] - bebd167eb94d-0 (4, 5, 5), 42b07e8da27d-1 (7, 4, 3), e6b8d5b46647-8 (12, 13, 5)
531 bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
532 e6b8d5b46647-8 (12, 13, 5) [complete] - 485383494a89-8 (11, 12, 4), e6b8d5b46647-12 (12, 13, 1)
533 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
534 485383494a89-8 (11, 12, 4) [complete] - f4b7da68b467-4 (9, 6, 2), 485383494a89-10 (11, 12, 2)
535 42b07e8da27d-1 (7, 4, 3) [complete] - de561312eff4-1 (5, 2, 1), 42b07e8da27d-2 (7, 4, 2)
536 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
537 42b07e8da27d-2 (7, 4, 2) [complete] - b9bc20507e0b-2 (6, 3, 1), 42b07e8da27d-3 (7, 4, 1)
538 485383494a89-10 (11, 12, 2) [complete] - 8aca7f8c9bd2-10 (10, 11, 1), 485383494a89-11 (11, 12, 1)
539 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
540 f4b7da68b467-4 (9, 6, 2) [complete] - 857477a9aebb-4 (8, 5, 1), f4b7da68b467-5 (9, 6, 1)
541 01241442b3c2-2 (2, 3, 1) [leaf] -
542 1ea73414a91b-0 (0, 1, 1) [leaf] -
543 2dc09a01254d-3 (3, 4, 1) [leaf] -
544 42b07e8da27d-3 (7, 4, 1) [leaf] -
545 485383494a89-11 (11, 12, 1) [leaf] -
546 66f7d451a68b-1 (1, 2, 1) [leaf] -
547 857477a9aebb-4 (8, 5, 1) [leaf] -
548 8aca7f8c9bd2-10 (10, 11, 1) [leaf] -
549 b9bc20507e0b-2 (6, 3, 1) [leaf] -
550 bebd167eb94d-4 (4, 5, 1) [leaf] -
551 de561312eff4-1 (5, 2, 1) [leaf] -
552 e6b8d5b46647-12 (12, 13, 1) [leaf] -
553 f4b7da68b467-5 (9, 6, 1) [leaf] -
554 $ hg debugstablerange --verify --verbose --subranges --rev 'tip' > tip.range
555 $ diff -u merge.range tip.range
556 --- merge.range * (glob)
557 +++ tip.range * (glob)
558 @@ -1,20 +1,24 @@
559 -8aca7f8c9bd2-0 (10, 11, 11) [complete] - bebd167eb94d-0 (4, 5, 5), 42b07e8da27d-1 (7, 4, 3), 8aca7f8c9bd2-8 (10, 11, 3)
560 +e6b8d5b46647-0 (12, 13, 13) [complete] - bebd167eb94d-0 (4, 5, 5), 42b07e8da27d-1 (7, 4, 3), e6b8d5b46647-8 (12, 13, 5)
561 bebd167eb94d-0 (4, 5, 5) [complete] - 2dc09a01254d-0 (3, 4, 4), bebd167eb94d-4 (4, 5, 1)
562 +e6b8d5b46647-8 (12, 13, 5) [complete] - 485383494a89-8 (11, 12, 4), e6b8d5b46647-12 (12, 13, 1)
563 2dc09a01254d-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2dc09a01254d-2 (3, 4, 2)
564 +485383494a89-8 (11, 12, 4) [complete] - f4b7da68b467-4 (9, 6, 2), 485383494a89-10 (11, 12, 2)
565 42b07e8da27d-1 (7, 4, 3) [complete] - de561312eff4-1 (5, 2, 1), 42b07e8da27d-2 (7, 4, 2)
566 -8aca7f8c9bd2-8 (10, 11, 3) [complete] - f4b7da68b467-4 (9, 6, 2), 8aca7f8c9bd2-10 (10, 11, 1)
567 2dc09a01254d-2 (3, 4, 2) [complete] - 01241442b3c2-2 (2, 3, 1), 2dc09a01254d-3 (3, 4, 1)
568 42b07e8da27d-2 (7, 4, 2) [complete] - b9bc20507e0b-2 (6, 3, 1), 42b07e8da27d-3 (7, 4, 1)
569 +485383494a89-10 (11, 12, 2) [complete] - 8aca7f8c9bd2-10 (10, 11, 1), 485383494a89-11 (11, 12, 1)
570 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
571 f4b7da68b467-4 (9, 6, 2) [complete] - 857477a9aebb-4 (8, 5, 1), f4b7da68b467-5 (9, 6, 1)
572 01241442b3c2-2 (2, 3, 1) [leaf] -
573 1ea73414a91b-0 (0, 1, 1) [leaf] -
574 2dc09a01254d-3 (3, 4, 1) [leaf] -
575 42b07e8da27d-3 (7, 4, 1) [leaf] -
576 +485383494a89-11 (11, 12, 1) [leaf] -
577 66f7d451a68b-1 (1, 2, 1) [leaf] -
578 857477a9aebb-4 (8, 5, 1) [leaf] -
579 8aca7f8c9bd2-10 (10, 11, 1) [leaf] -
580 b9bc20507e0b-2 (6, 3, 1) [leaf] -
581 bebd167eb94d-4 (4, 5, 1) [leaf] -
582 de561312eff4-1 (5, 2, 1) [leaf] -
583 +e6b8d5b46647-12 (12, 13, 1) [leaf] -
584 f4b7da68b467-5 (9, 6, 1) [leaf] -
585 [1]
586
587 $ cd ..
588
589 Tests range with criss cross merge in the graph
590 ===============================================
591
592 $ hg init repo_criss_cross
593 $ cd repo_criss_cross
594 $ hg debugbuilddag '
595 > ..:g # 2 nodes, tagged "g"
596 > <2.:h # another node base one -2 -> 0, tagged "h"
597 > *1/2:m # merge -1 and -2 (1, 2), tagged "m"
598 > <2+2:i # 2 nodes based on -2, tag head as "i"
599 > .:c # 1 node tagged "c"
600 > <m+3:a # 3 nodes base on the "m" tag
601 > <2.:b # 1 node based on -2; tagged "b"
602 > <m+2:d # 2 nodes from "m" tagged "d"
603 > <2.:e # 1 node based on -2, tagged "e"
604 > <m+1:f # 1 node based on "m" tagged "f"
605 > <i/f # merge "i" and "f"
606 > '
607 $ hg log -G
608 o 15 1d8d22637c2d r15 tip
609 |\
610 | o 14 43227190fef8 r14 f
611 | |
612 | | o 13 b4594d867745 r13 e
613 | | |
614 | | | o 12 e46a4836065c r12 d
615 | | |/
616 | | o 11 bab5d5bf48bd r11
617 | |/
618 | | o 10 ff43616e5d0f r10 b
619 | | |
620 | | | o 9 dcbb326fdec2 r9 a
621 | | |/
622 | | o 8 d62d843c9a01 r8
623 | | |
624 | | o 7 e7d9710d9fc6 r7
625 | |/
626 +---o 6 2702dd0c91e7 r6 c
627 | |
628 o | 5 f0f3ef9a6cd5 r5 i
629 | |
630 o | 4 4c748ffd1a46 r4
631 | |
632 | o 3 2b6d669947cd r3 m
633 |/|
634 o | 2 fa942426a6fd r2 h
635 | |
636 | o 1 66f7d451a68b r1 g
637 |/
638 o 0 1ea73414a91b r0
639
640 $ hg debugdepth -r 'all()'
641 1ea73414a91b 1
642 66f7d451a68b 2
643 fa942426a6fd 2
644 2b6d669947cd 4
645 4c748ffd1a46 3
646 f0f3ef9a6cd5 4
647 2702dd0c91e7 5
648 e7d9710d9fc6 5
649 d62d843c9a01 6
650 dcbb326fdec2 7
651 ff43616e5d0f 7
652 bab5d5bf48bd 5
653 e46a4836065c 6
654 b4594d867745 6
655 43227190fef8 5
656 1d8d22637c2d 8
657 $ hg debugstablerange --verify --verbose --subranges --rev 'head()'
658 1d8d22637c2d-0 (15, 8, 8) [complete] - 2b6d669947cd-0 (3, 4, 4), 1d8d22637c2d-4 (15, 8, 4)
659 dcbb326fdec2-0 (9, 7, 7) [complete] - 2b6d669947cd-0 (3, 4, 4), dcbb326fdec2-4 (9, 7, 3)
660 ff43616e5d0f-0 (10, 7, 7) [complete] - 2b6d669947cd-0 (3, 4, 4), ff43616e5d0f-4 (10, 7, 3)
661 b4594d867745-0 (13, 6, 6) [complete] - 2b6d669947cd-0 (3, 4, 4), b4594d867745-4 (13, 6, 2)
662 e46a4836065c-0 (12, 6, 6) [complete] - 2b6d669947cd-0 (3, 4, 4), e46a4836065c-4 (12, 6, 2)
663 2702dd0c91e7-0 (6, 5, 5) [complete] - f0f3ef9a6cd5-0 (5, 4, 4), 2702dd0c91e7-4 (6, 5, 1)
664 1d8d22637c2d-4 (15, 8, 4) [complete] - 43227190fef8-4 (14, 5, 1), 4c748ffd1a46-2 (4, 3, 1), 1d8d22637c2d-6 (15, 8, 2)
665 2b6d669947cd-0 (3, 4, 4) [complete] - 66f7d451a68b-0 (1, 2, 2), 2b6d669947cd-2 (3, 4, 2)
666 f0f3ef9a6cd5-0 (5, 4, 4) [complete] - fa942426a6fd-0 (2, 2, 2), f0f3ef9a6cd5-2 (5, 4, 2)
667 dcbb326fdec2-4 (9, 7, 3) [complete] - d62d843c9a01-4 (8, 6, 2), dcbb326fdec2-6 (9, 7, 1)
668 ff43616e5d0f-4 (10, 7, 3) [complete] - d62d843c9a01-4 (8, 6, 2), ff43616e5d0f-6 (10, 7, 1)
669 1d8d22637c2d-6 (15, 8, 2) [complete] - f0f3ef9a6cd5-3 (5, 4, 1), 1d8d22637c2d-7 (15, 8, 1)
670 2b6d669947cd-2 (3, 4, 2) [complete] - fa942426a6fd-1 (2, 2, 1), 2b6d669947cd-3 (3, 4, 1)
671 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
672 b4594d867745-4 (13, 6, 2) [complete] - bab5d5bf48bd-4 (11, 5, 1), b4594d867745-5 (13, 6, 1)
673 d62d843c9a01-4 (8, 6, 2) [complete] - e7d9710d9fc6-4 (7, 5, 1), d62d843c9a01-5 (8, 6, 1)
674 e46a4836065c-4 (12, 6, 2) [complete] - bab5d5bf48bd-4 (11, 5, 1), e46a4836065c-5 (12, 6, 1)
675 f0f3ef9a6cd5-2 (5, 4, 2) [complete] - 4c748ffd1a46-2 (4, 3, 1), f0f3ef9a6cd5-3 (5, 4, 1)
676 fa942426a6fd-0 (2, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), fa942426a6fd-1 (2, 2, 1)
677 1d8d22637c2d-7 (15, 8, 1) [leaf] -
678 1ea73414a91b-0 (0, 1, 1) [leaf] -
679 2702dd0c91e7-4 (6, 5, 1) [leaf] -
680 2b6d669947cd-3 (3, 4, 1) [leaf] -
681 43227190fef8-4 (14, 5, 1) [leaf] -
682 4c748ffd1a46-2 (4, 3, 1) [leaf] -
683 66f7d451a68b-1 (1, 2, 1) [leaf] -
684 b4594d867745-5 (13, 6, 1) [leaf] -
685 bab5d5bf48bd-4 (11, 5, 1) [leaf] -
686 d62d843c9a01-5 (8, 6, 1) [leaf] -
687 dcbb326fdec2-6 (9, 7, 1) [leaf] -
688 e46a4836065c-5 (12, 6, 1) [leaf] -
689 e7d9710d9fc6-4 (7, 5, 1) [leaf] -
690 f0f3ef9a6cd5-3 (5, 4, 1) [leaf] -
691 fa942426a6fd-1 (2, 2, 1) [leaf] -
692 ff43616e5d0f-6 (10, 7, 1) [leaf] -
693 $ cd ..
694
695 Tests range where a toprange is rooted on a merge
696 =================================================
697
698 $ hg init slice_on_merge
699 $ cd slice_on_merge
700 $ hg debugbuilddag '
701 > ..:a # 2 nodes, tagged "a"
702 > <2..:b # another branch with two node based on 0, tagged b
703 > *a/b:m # merge -1 and -2 (1, 2), tagged "m"
704 > '
705 $ hg log -G
706 o 4 f37e476fba9a r4 m tip
707 |\
708 | o 3 36315563e2fa r3 b
709 | |
710 | o 2 fa942426a6fd r2
711 | |
712 o | 1 66f7d451a68b r1 a
713 |/
714 o 0 1ea73414a91b r0
715
716 $ hg debugdepth -r 'all()'
717 1ea73414a91b 1
718 66f7d451a68b 2
719 fa942426a6fd 2
720 36315563e2fa 3
721 f37e476fba9a 5
722 $ hg debugstablerange --verify --verbose --subranges --rev 'head()'
723 f37e476fba9a-0 (4, 5, 5) [complete] - 66f7d451a68b-0 (1, 2, 2), 36315563e2fa-1 (3, 3, 2), f37e476fba9a-4 (4, 5, 1)
724 36315563e2fa-1 (3, 3, 2) [complete] - fa942426a6fd-1 (2, 2, 1), 36315563e2fa-2 (3, 3, 1)
725 66f7d451a68b-0 (1, 2, 2) [complete] - 1ea73414a91b-0 (0, 1, 1), 66f7d451a68b-1 (1, 2, 1)
726 1ea73414a91b-0 (0, 1, 1) [leaf] -
727 36315563e2fa-2 (3, 3, 1) [leaf] -
728 66f7d451a68b-1 (1, 2, 1) [leaf] -
729 f37e476fba9a-4 (4, 5, 1) [leaf] -
730 fa942426a6fd-1 (2, 2, 1) [leaf] -
731