changeset 50562 | 8fb3e942473a |
parent 50496 | e06331275a53 |
child 50563 | 027481f19944 |
50561:dc372251d4dc | 50562:8fb3e942473a |
---|---|
6 non-trivial structure, on which the various stable-tail graph and stable-tail |
6 non-trivial structure, on which the various stable-tail graph and stable-tail |
7 sort functions are tested. |
7 sort functions are tested. |
8 |
8 |
9 Each case consists of the creation of the interesting graph structure, followed |
9 Each case consists of the creation of the interesting graph structure, followed |
10 by a check, for each noteworthy node, of: |
10 by a check, for each noteworthy node, of: |
11 - the stable-tail sort output (with the linear parts globbed). |
11 - the stable-tail sort output (with the linear parts globbed), |
12 - the leap set, |
|
13 - the specific leap set. |
|
12 |
14 |
13 In the ASCII art of the diagrams, the side of the exclusive part which is |
15 In the ASCII art of the diagrams, the side of the exclusive part which is |
14 followed in priority is denoted with "<" or ">" if it is on the left or right |
16 followed in priority is denoted with "<" or ">" if it is on the left or right |
15 respectively. |
17 respectively. |
16 |
18 |
27 > [format] |
29 > [format] |
28 > exp-use-changelog-v2=enable-unstable-format-and-corrupt-my-data |
30 > exp-use-changelog-v2=enable-unstable-format-and-corrupt-my-data |
29 > |
31 > |
30 > [alias] |
32 > [alias] |
31 > test-sts = debug::stable-tail-sort -T '{tags},' |
33 > test-sts = debug::stable-tail-sort -T '{tags},' |
34 > test-leaps = debug::stable-tail-sort-leaps -T '{tags}' |
|
32 > test-log = log --graph -T '{tags} rank={_fast_rank}' --rev 'tagged()' |
35 > test-log = log --graph -T '{tags} rank={_fast_rank}' --rev 'tagged()' |
33 > EOF |
36 > EOF |
34 |
37 |
35 |
38 |
36 Example 1: single merge node |
39 Example 1: single merge node |
84 |
87 |
85 Check that the linear descendant of the merge inherits its sort properly. |
88 Check that the linear descendant of the merge inherits its sort properly. |
86 |
89 |
87 $ hg test-sts f |
90 $ hg test-sts f |
88 f,e,c,d,*,b,a, (no-eol) (glob) |
91 f,e,c,d,*,b,a, (no-eol) (glob) |
92 |
|
93 Check the leaps of "e": arriving at "c", the sort continues at "d", which |
|
94 which breaks the child-parent chain and results in a leap. |
|
95 |
|
96 $ hg test-leaps e |
|
97 cd |
|
98 |
|
99 Check that this leap is indeed specific to "e", i.e. that it appears in its |
|
100 stable-tail sort, but not in any stable-tail sort of its ancestors. |
|
101 |
|
102 $ hg test-leaps --specific e |
|
103 |
|
104 Check that this leap is inherited by its direct ancestor "f". |
|
105 |
|
106 $ hg test-leaps f |
|
107 cd |
|
108 |
|
109 Check that this leap is not classified as specific to "f", since it is specific |
|
110 to "e". |
|
111 |
|
112 $ hg test-leaps --specific f |
|
89 |
113 |
90 $ cd .. |
114 $ cd .. |
91 |
115 |
92 |
116 |
93 Example 2: nested exclusive parts, without specific leap |
117 Example 2: nested exclusive parts, without specific leap |
144 and that a part of the sort of "e" appears as an infix. |
168 and that a part of the sort of "e" appears as an infix. |
145 |
169 |
146 $ hg test-sts g |
170 $ hg test-sts g |
147 g,e,c,d,*,b,f,*,a, (no-eol) (glob) |
171 g,e,c,d,*,b,f,*,a, (no-eol) (glob) |
148 |
172 |
173 Check the leaps of "e". |
|
174 |
|
175 $ hg test-leaps e |
|
176 cd |
|
177 |
|
178 $ hg test-leaps --specific e |
|
179 |
|
180 Check that "g" inherits a leap from "e" in addition of its own. |
|
181 |
|
182 $ hg test-leaps g |
|
183 cd |
|
184 bf |
|
185 |
|
186 Check that only the additional leap of "g" is classified as specific. |
|
187 |
|
188 $ hg test-leaps --specific g |
|
189 |
|
149 $ cd .. |
190 $ cd .. |
150 |
191 |
151 |
192 |
152 Example 3: shadowing of a final leap |
193 Example 3: shadowing of a final leap |
153 ==================================== |
194 ==================================== |
203 and that "c" is then emitted after "e" (its descendant). |
244 and that "c" is then emitted after "e" (its descendant). |
204 |
245 |
205 $ hg test-sts f |
246 $ hg test-sts f |
206 f,d,b,e,*,c,*,a, (no-eol) (glob) |
247 f,d,b,e,*,c,*,a, (no-eol) (glob) |
207 |
248 |
249 Check the leaps of "d". |
|
250 |
|
251 $ hg test-leaps d |
|
252 bc |
|
253 |
|
254 $ hg test-leaps --specific d |
|
255 |
|
256 Check thet leaps of "f", which, despite being a descendant of "f", has a |
|
257 different stable-tail sort which does not reuse any leap of "d". |
|
258 |
|
259 $ hg test-leaps f |
|
260 be |
|
261 |
|
262 $ hg test-leaps --specific f |
|
263 |
|
208 $ cd .. |
264 $ cd .. |
209 |
265 |
210 |
266 |
211 Example 4: skipping over nested exclusive part (entirely) |
267 Example 4: skipping over nested exclusive part (entirely) |
212 ========================================================= |
268 ========================================================= |
260 |
316 |
261 Check that sort "f" leaps from "d" to "b": |
317 Check that sort "f" leaps from "d" to "b": |
262 |
318 |
263 $ hg test-sts f |
319 $ hg test-sts f |
264 f,d,b,*,e,*,c,a, (no-eol) (glob) |
320 f,d,b,*,e,*,c,a, (no-eol) (glob) |
321 |
|
322 Check the leaps of "d". |
|
323 |
|
324 $ hg test-leaps d |
|
325 cb |
|
326 |
|
327 $ hg test-leaps --specific d |
|
328 |
|
329 Check the leaps of "f". |
|
330 |
|
331 $ hg test-leaps f |
|
332 db |
|
333 e* (glob) |
|
334 |
|
335 $ hg test-leaps --specific f |
|
336 db |
|
265 |
337 |
266 $ cd .. |
338 $ cd .. |
267 |
339 |
268 |
340 |
269 Example 5: skipping over nested exclusive part (partially) |
341 Example 5: skipping over nested exclusive part (partially) |
320 Check that sort "f" leaps from "g" to "b": |
392 Check that sort "f" leaps from "g" to "b": |
321 |
393 |
322 $ hg test-sts f |
394 $ hg test-sts f |
323 f,d,g,b,*,e,*,c,a, (no-eol) (glob) |
395 f,d,g,b,*,e,*,c,a, (no-eol) (glob) |
324 |
396 |
397 Check the leaps of "d". |
|
398 |
|
399 $ hg test-leaps d |
|
400 cb |
|
401 $ hg test-leaps --specific d |
|
402 |
|
403 Check the leaps of "f". |
|
404 |
|
405 $ hg test-leaps f |
|
406 gb |
|
407 e* (glob) |
|
408 |
|
409 $ hg test-leaps --specific f |
|
410 gb |
|
411 |
|
325 $ cd .. |
412 $ cd .. |
326 |
413 |
327 |
414 |
328 Example 6: merge in the inherited part |
415 Example 6: merge in the inherited part |
329 ====================================== |
416 ====================================== |
378 Check that the sort of "g" delegates to the sort of "f" after processing its |
465 Check that the sort of "g" delegates to the sort of "f" after processing its |
379 exclusive part of "g": |
466 exclusive part of "g": |
380 |
467 |
381 $ hg test-sts g |
468 $ hg test-sts g |
382 g,d,f,e,b,c,*,a, (no-eol) (glob) |
469 g,d,f,e,b,c,*,a, (no-eol) (glob) |
470 |
|
471 Check the leaps of "f". |
|
472 |
|
473 $ hg test-leaps f |
|
474 bc |
|
475 |
|
476 $ hg test-leaps --specific f |
|
477 |
|
478 Check the leaps of "g". |
|
479 |
|
480 $ hg test-leaps g |
|
481 df |
|
482 bc |
|
483 |
|
484 $ hg test-leaps --specific g |
|
383 |
485 |
384 $ cd .. |
486 $ cd .. |
385 |
487 |
386 |
488 |
387 Example 7: postponed iteration of common exclusive ancestors |
489 Example 7: postponed iteration of common exclusive ancestors |
459 Check that the common part of excl(j) and excl(k) is iterated over after "k": |
561 Check that the common part of excl(j) and excl(k) is iterated over after "k": |
460 |
562 |
461 $ hg test-sts l |
563 $ hg test-sts l |
462 l,j,e,g,*,f,k,h,*,d,c,b,i,*,a, (no-eol) (glob) |
564 l,j,e,g,*,f,k,h,*,d,c,b,i,*,a, (no-eol) (glob) |
463 |
565 |
566 Check the leaps of "j". |
|
567 |
|
568 $ hg test-leaps j |
|
569 cg |
|
570 |
|
571 $ hg test-leaps --specific j |
|
572 |
|
573 Check the leaps of "k". |
|
574 |
|
575 $ hg test-leaps k |
|
576 bi |
|
577 |
|
578 $ hg test-leaps --specific k |
|
579 |
|
580 Check the leaps of "l". |
|
581 |
|
582 $ hg test-leaps l |
|
583 eg |
|
584 fk |
|
585 bi |
|
586 |
|
587 $ hg test-leaps --specific l |
|
588 eg |
|
589 |
|
464 $ cd .. |
590 $ cd .. |
465 |
591 |
466 |
592 |
467 Example 8: postponed iteration of common ancestors between parts |
593 Example 8: postponed iteration of common ancestors between parts |
468 ================================================================ |
594 ================================================================ |
532 Check that the common part of inherited(g) and excl(k) is iterated over after |
658 Check that the common part of inherited(g) and excl(k) is iterated over after |
533 "i": |
659 "i": |
534 |
660 |
535 $ hg test-sts j |
661 $ hg test-sts j |
536 j,g,c,f,i,e,d,b,h,*,a, (no-eol) (glob) |
662 j,g,c,f,i,e,d,b,h,*,a, (no-eol) (glob) |
663 |
|
664 Check the leaps of "g". |
|
665 |
|
666 $ hg test-leaps g |
|
667 cf |
|
668 $ hg test-leaps g |
|
669 cf |
|
670 |
|
671 Check the leaps of "i". |
|
672 |
|
673 $ hg test-leaps i |
|
674 bh |
|
675 |
|
676 $ hg test-leaps --specific i |
|
677 |
|
678 Check the leaps of "j". |
|
679 |
|
680 $ hg test-leaps j |
|
681 cf |
|
682 fi |
|
683 bh |
|
684 |
|
685 $ hg test-leaps --specific j |
|
537 |
686 |
538 $ cd .. |
687 $ cd .. |
539 |
688 |
540 |
689 |
541 Example 9: postponed iteration of common ancestors between both parts |
690 Example 9: postponed iteration of common ancestors between both parts |
611 is postponed to inherited(j) in sort(k): |
760 is postponed to inherited(j) in sort(k): |
612 |
761 |
613 $ hg test-sts k |
762 $ hg test-sts k |
614 k,i,c,f,e,j,g,*,b,h,*,d,a, (no-eol) (glob) |
763 k,i,c,f,e,j,g,*,b,h,*,d,a, (no-eol) (glob) |
615 |
764 |
616 $ cd .. |
765 Check the leaps of "i". |
766 |
|
767 $ hg test-leaps i |
|
768 bf |
|
769 |
|
770 $ hg test-leaps --specific i |
|
771 |
|
772 Check the leaps of "j". |
|
773 |
|
774 $ hg test-leaps j |
|
775 bh |
|
776 |
|
777 $ hg test-leaps --specific j |
|
778 |
|
779 Check the leaps of "k". |
|
780 |
|
781 $ hg test-leaps k |
|
782 cf |
|
783 ej |
|
784 bh |
|
785 |
|
786 $ hg test-leaps --specific k |
|
787 cf |
|
788 |
|
789 $ cd .. |