comparison tests/test-evolve-obshistory.t @ 2407:783a74c60a5e

obshistory: add a graph option on the debugobshistory command Add a graph option (--graph) to the debugobshistory. The output is like the 'hg log -G' output. The option is activated by default but can be deactivated with '--no-graph' option. There are various issue with the current implementation (multiple cycles handling, N² complexity) but this can be fixed later.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 18 May 2017 11:29:27 +0200
parents c07f752137f4
children 0756d36696bc
comparison
equal deleted inserted replaced
2406:31255706b591 2407:783a74c60a5e
52 summary: ROOT 52 summary: ROOT
53 53
54 Actual test 54 Actual test
55 ----------- 55 -----------
56 $ hg debugobshistory 4ae3a4151de9 56 $ hg debugobshistory 4ae3a4151de9
57 4ae3a4151de9 (3) A1 57 @ 4ae3a4151de9 (3) A1
58 471f378eab4c (1) A0 58 |
59 rewritten by test (*20*) as 4ae3a4151de9 (glob) 59 x 471f378eab4c (1) A0
60 $ hg debugobshistory 4ae3a4151de9 -Tjson | python -m json.tool 60 rewritten by test (*20*) as 4ae3a4151de9 (glob)
61
62 $ hg debugobshistory 4ae3a4151de9 --no-graph -Tjson | python -m json.tool
61 [ 63 [
62 { 64 {
63 "debugobshistory.markers": [], 65 "debugobshistory.markers": [],
64 "debugobshistory.node": "4ae3a4151de9", 66 "debugobshistory.node": "4ae3a4151de9",
65 "debugobshistory.rev": 3, 67 "debugobshistory.rev": 3,
83 "debugobshistory.rev": 1, 85 "debugobshistory.rev": 1,
84 "debugobshistory.shortdescription": "A0" 86 "debugobshistory.shortdescription": "A0"
85 } 87 }
86 ] 88 ]
87 $ hg debugobshistory --hidden 471f378eab4c 89 $ hg debugobshistory --hidden 471f378eab4c
88 471f378eab4c (1) A0 90 x 471f378eab4c (1) A0
89 rewritten by test (*20*) as 4ae3a4151de9 (glob) 91 rewritten by test (*20*) as 4ae3a4151de9 (glob)
90 $ hg debugobshistory --hidden 471f378eab4c -Tjson | python -m json.tool 92
93 $ hg debugobshistory --hidden 471f378eab4c --no-graph -Tjson | python -m json.tool
91 [ 94 [
92 { 95 {
93 "debugobshistory.markers": [ 96 "debugobshistory.markers": [
94 { 97 {
95 "debugobshistory.marker_date": [ 98 "debugobshistory.marker_date": [
169 172
170 Actual test 173 Actual test
171 ----------- 174 -----------
172 175
173 $ hg debugobshistory 'desc(B0)' --hidden 176 $ hg debugobshistory 'desc(B0)' --hidden
174 0dec01379d3b (2) B0 177 x 0dec01379d3b (2) B0
175 pruned by test (*20*) (glob) 178 pruned by test (*20*) (glob)
176 $ hg debugobshistory 'desc(B0)' --hidden -Tjson | python -m json.tool 179
180 $ hg debugobshistory 'desc(B0)' --hidden --no-graph -Tjson | python -m json.tool
177 [ 181 [
178 { 182 {
179 "debugobshistory.markers": [ 183 "debugobshistory.markers": [
180 { 184 {
181 "debugobshistory.marker_date": [ 185 "debugobshistory.marker_date": [
190 "debugobshistory.rev": 2, 194 "debugobshistory.rev": 2,
191 "debugobshistory.shortdescription": "B0" 195 "debugobshistory.shortdescription": "B0"
192 } 196 }
193 ] 197 ]
194 $ hg debugobshistory 'desc(A0)' 198 $ hg debugobshistory 'desc(A0)'
195 471f378eab4c (1) A0 199 @ 471f378eab4c (1) A0
196 $ hg debugobshistory 'desc(A0)' -Tjson | python -m json.tool 200
201 $ hg debugobshistory 'desc(A0)' --no-graph -Tjson | python -m json.tool
197 [ 202 [
198 { 203 {
199 "debugobshistory.markers": [], 204 "debugobshistory.markers": [],
200 "debugobshistory.node": "471f378eab4c", 205 "debugobshistory.node": "471f378eab4c",
201 "debugobshistory.rev": 1, 206 "debugobshistory.rev": 1,
298 summary: ROOT 303 summary: ROOT
299 304
300 Actual test 305 Actual test
301 ----------- 306 -----------
302 307
308 Check that debugobshistory on splitted commit show both targets
303 $ hg debugobshistory 471597cad322 --hidden 309 $ hg debugobshistory 471597cad322 --hidden
304 471597cad322 (1) A0 310 x 471597cad322 (1) A0
305 rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob) 311 rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
306 $ hg debugobshistory 471597cad322 --hidden -Tjson | python -m json.tool 312
313 $ hg debugobshistory 471597cad322 --hidden --no-graph -Tjson | python -m json.tool
307 [ 314 [
308 { 315 {
309 "debugobshistory.markers": [ 316 "debugobshistory.markers": [
310 { 317 {
311 "debugobshistory.marker_date": [ 318 "debugobshistory.marker_date": [
323 "debugobshistory.node": "471597cad322", 330 "debugobshistory.node": "471597cad322",
324 "debugobshistory.rev": 1, 331 "debugobshistory.rev": 1,
325 "debugobshistory.shortdescription": "A0" 332 "debugobshistory.shortdescription": "A0"
326 } 333 }
327 ] 334 ]
335 Check that debugobshistory on the first successor after split show
336 the revision plus the splitted one
328 $ hg debugobshistory 337fec4d2edc 337 $ hg debugobshistory 337fec4d2edc
329 337fec4d2edc (2) A0 338 o 337fec4d2edc (2) A0
330 471597cad322 (1) A0 339 |
331 rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob) 340 x 471597cad322 (1) A0
332 $ hg debugobshistory 337fec4d2edc -Tjson | python -m json.tool 341 rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
333 [ 342
334 { 343 Check that debugobshistory on the second successor after split show
335 "debugobshistory.markers": [], 344 the revision plus the splitted one
336 "debugobshistory.node": "337fec4d2edc",
337 "debugobshistory.rev": 2,
338 "debugobshistory.shortdescription": "A0"
339 },
340 {
341 "debugobshistory.markers": [
342 {
343 "debugobshistory.marker_date": [
344 *, (glob)
345 0 (glob)
346 ],
347 "debugobshistory.marker_user": "test",
348 "debugobshistory.succnodes": [
349 "337fec4d2edc",
350 "f257fde29c7a"
351 ],
352 "debugobshistory.verb": "rewritten"
353 }
354 ],
355 "debugobshistory.node": "471597cad322",
356 "debugobshistory.rev": 1,
357 "debugobshistory.shortdescription": "A0"
358 }
359 ]
360 $ hg debugobshistory f257fde29c7a 345 $ hg debugobshistory f257fde29c7a
361 f257fde29c7a (3) A0 346 @ f257fde29c7a (3) A0
362 471597cad322 (1) A0 347 |
363 rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob) 348 x 471597cad322 (1) A0
364 $ hg debugobshistory f257fde29c7a -Tjson | python -m json.tool 349 rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
365 [ 350
366 { 351 Check that debugobshistory on both successors after split show
367 "debugobshistory.markers": [], 352 a coherent graph
368 "debugobshistory.node": "f257fde29c7a", 353 $ hg debugobshistory 'f257fde29c7a+337fec4d2edc'
369 "debugobshistory.rev": 3, 354 o 337fec4d2edc (2) A0
370 "debugobshistory.shortdescription": "A0" 355 |
371 }, 356 | @ f257fde29c7a (3) A0
372 { 357 |/
373 "debugobshistory.markers": [ 358 x 471597cad322 (1) A0
374 { 359 rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
375 "debugobshistory.marker_date": [ 360
376 *, (glob)
377 0 (glob)
378 ],
379 "debugobshistory.marker_user": "test",
380 "debugobshistory.succnodes": [
381 "337fec4d2edc",
382 "f257fde29c7a"
383 ],
384 "debugobshistory.verb": "rewritten"
385 }
386 ],
387 "debugobshistory.node": "471597cad322",
388 "debugobshistory.rev": 1,
389 "debugobshistory.shortdescription": "A0"
390 }
391 ]
392 $ hg update 471597cad322 361 $ hg update 471597cad322
393 abort: hidden revision '471597cad322'! 362 abort: hidden revision '471597cad322'!
394 (use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a) 363 (use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a)
395 [255] 364 [255]
396 $ hg update --hidden 'min(desc(A0))' 365 $ hg update --hidden 'min(desc(A0))'
550 519
551 Actual test 520 Actual test
552 ----------- 521 -----------
553 522
554 $ hg debugobshistory de7290d8b885 --hidden 523 $ hg debugobshistory de7290d8b885 --hidden
555 de7290d8b885 (1) A0 524 x de7290d8b885 (1) A0
556 rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob) 525 rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
557 $ hg debugobshistory de7290d8b885 --hidden -Tjson | python -m json.tool 526
527 $ hg debugobshistory de7290d8b885 --hidden --no-graph -Tjson | python -m json.tool
558 [ 528 [
559 { 529 {
560 "debugobshistory.markers": [ 530 "debugobshistory.markers": [
561 { 531 {
562 "debugobshistory.marker_date": [ 532 "debugobshistory.marker_date": [
577 "debugobshistory.rev": 1, 547 "debugobshistory.rev": 1,
578 "debugobshistory.shortdescription": "A0" 548 "debugobshistory.shortdescription": "A0"
579 } 549 }
580 ] 550 ]
581 $ hg debugobshistory c7f044602e9b 551 $ hg debugobshistory c7f044602e9b
582 c7f044602e9b (5) A0 552 @ c7f044602e9b (5) A0
583 de7290d8b885 (1) A0 553 |
584 rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob) 554 x de7290d8b885 (1) A0
585 $ hg debugobshistory c7f044602e9b -Tjson | python -m json.tool 555 rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
556
557 $ hg debugobshistory c7f044602e9b --no-graph -Tjson | python -m json.tool
586 [ 558 [
587 { 559 {
588 "debugobshistory.markers": [], 560 "debugobshistory.markers": [],
589 "debugobshistory.node": "c7f044602e9b", 561 "debugobshistory.node": "c7f044602e9b",
590 "debugobshistory.rev": 5, 562 "debugobshistory.rev": 5,
610 "debugobshistory.node": "de7290d8b885", 582 "debugobshistory.node": "de7290d8b885",
611 "debugobshistory.rev": 1, 583 "debugobshistory.rev": 1,
612 "debugobshistory.shortdescription": "A0" 584 "debugobshistory.shortdescription": "A0"
613 } 585 }
614 ] 586 ]
615 $ hg debugobshistory 2:5 587 Check that debugobshistory on all heads show a coherent graph
616 337fec4d2edc (2) A0 588 $ hg debugobshistory 2::5
617 de7290d8b885 (1) A0 589 o 1ae8bc733a14 (4) A0
618 rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob) 590 |
619 f257fde29c7a (3) A0 591 | o 337fec4d2edc (2) A0
620 1ae8bc733a14 (4) A0 592 |/
621 c7f044602e9b (5) A0 593 | @ c7f044602e9b (5) A0
594 |/
595 | o f257fde29c7a (3) A0
596 |/
597 x de7290d8b885 (1) A0
598 rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
599
622 $ hg update de7290d8b885 600 $ hg update de7290d8b885
623 abort: hidden revision 'de7290d8b885'! 601 abort: hidden revision 'de7290d8b885'!
624 (use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a and 2 more) 602 (use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a and 2 more)
625 [255] 603 [255]
626 $ hg update --hidden 'min(desc(A0))' 604 $ hg update --hidden 'min(desc(A0))'
683 summary: ROOT 661 summary: ROOT
684 662
685 Actual test 663 Actual test
686 ----------- 664 -----------
687 665
666 Check that debugobshistory on the first folded revision show only
667 the revision with the target
688 $ hg debugobshistory --hidden 471f378eab4c 668 $ hg debugobshistory --hidden 471f378eab4c
689 471f378eab4c (1) A0 669 x 471f378eab4c (1) A0
690 rewritten by test (*20*) as eb5a0daa2192 (glob) 670 rewritten by test (*20*) as eb5a0daa2192 (glob)
691 $ hg debugobshistory --hidden 471f378eab4c -Tjson | python -m json.tool 671
692 [ 672 Check that debugobshistory on the second folded revision show only
693 { 673 the revision with the target
694 "debugobshistory.markers": [
695 {
696 "debugobshistory.marker_date": [
697 *, (glob)
698 0 (glob)
699 ],
700 "debugobshistory.marker_user": "test",
701 "debugobshistory.succnodes": [
702 "eb5a0daa2192"
703 ],
704 "debugobshistory.verb": "rewritten"
705 }
706 ],
707 "debugobshistory.node": "471f378eab4c",
708 "debugobshistory.rev": 1,
709 "debugobshistory.shortdescription": "A0"
710 }
711 ]
712 $ hg debugobshistory --hidden 0dec01379d3b 674 $ hg debugobshistory --hidden 0dec01379d3b
713 0dec01379d3b (2) B0 675 x 0dec01379d3b (2) B0
714 rewritten by test (*20*) as eb5a0daa2192 (glob) 676 rewritten by test (*20*) as eb5a0daa2192 (glob)
715 $ hg debugobshistory --hidden 0dec01379d3b -Tjson | python -m json.tool 677
716 [ 678 Check that debugobshistory on the successor revision show a coherent
717 { 679 graph
718 "debugobshistory.markers": [
719 {
720 "debugobshistory.marker_date": [
721 *, (glob)
722 0 (glob)
723 ],
724 "debugobshistory.marker_user": "test",
725 "debugobshistory.succnodes": [
726 "eb5a0daa2192"
727 ],
728 "debugobshistory.verb": "rewritten"
729 }
730 ],
731 "debugobshistory.node": "0dec01379d3b",
732 "debugobshistory.rev": 2,
733 "debugobshistory.shortdescription": "B0"
734 }
735 ]
736 $ hg debugobshistory eb5a0daa2192 680 $ hg debugobshistory eb5a0daa2192
737 eb5a0daa2192 (3) C0 681 @ eb5a0daa2192 (3) C0
738 471f378eab4c (1) A0 682 |\
739 rewritten by test (*20*) as eb5a0daa2192 (glob) 683 x | 0dec01379d3b (2) B0
740 0dec01379d3b (2) B0 684 / rewritten by test (*20*) as eb5a0daa2192 (glob)
741 rewritten by test (*20*) as eb5a0daa2192 (glob) 685 |
742 $ hg debugobshistory eb5a0daa2192 -Tjson | python -m json.tool 686 x 471f378eab4c (1) A0
687 rewritten by test (*20*) as eb5a0daa2192 (glob)
688
689 $ hg debugobshistory eb5a0daa2192 --no-graph -Tjson | python -m json.tool
743 [ 690 [
744 { 691 {
745 "debugobshistory.markers": [], 692 "debugobshistory.markers": [],
746 "debugobshistory.node": "eb5a0daa2192", 693 "debugobshistory.node": "eb5a0daa2192",
747 "debugobshistory.rev": 3, 694 "debugobshistory.rev": 3,
865 summary: ROOT 812 summary: ROOT
866 813
867 Actual test 814 Actual test
868 ----------- 815 -----------
869 816
817 Check that debugobshistory on the divergent revision show both destinations
870 $ hg debugobshistory --hidden 471f378eab4c 818 $ hg debugobshistory --hidden 471f378eab4c
871 471f378eab4c (1) A0 819 x 471f378eab4c (1) A0
872 rewritten by test (*20*) as 65b757b745b9 (glob) 820 rewritten by test (*20*) as 65b757b745b9 (glob)
873 rewritten by test (*20*) as fdf9bde5129a (glob) 821 rewritten by test (*20*) as fdf9bde5129a (glob)
874 $ hg debugobshistory --hidden 471f378eab4c -Tjson | python -m json.tool 822
823 $ hg debugobshistory --hidden 471f378eab4c --no-graph -Tjson | python -m json.tool
875 [ 824 [
876 { 825 {
877 "debugobshistory.markers": [ 826 "debugobshistory.markers": [
878 { 827 {
879 "debugobshistory.marker_date": [ 828 "debugobshistory.marker_date": [
901 "debugobshistory.node": "471f378eab4c", 850 "debugobshistory.node": "471f378eab4c",
902 "debugobshistory.rev": 1, 851 "debugobshistory.rev": 1,
903 "debugobshistory.shortdescription": "A0" 852 "debugobshistory.shortdescription": "A0"
904 } 853 }
905 ] 854 ]
855 Check that debugobshistory on the first diverged revision show the revision
856 and the diverent one
906 $ hg debugobshistory fdf9bde5129a 857 $ hg debugobshistory fdf9bde5129a
907 fdf9bde5129a (2) A1 858 o fdf9bde5129a (2) A1
908 471f378eab4c (1) A0 859 |
909 rewritten by test (*20*) as 65b757b745b9 (glob) 860 x 471f378eab4c (1) A0
910 rewritten by test (*20*) as fdf9bde5129a (glob) 861 rewritten by test (*20*) as 65b757b745b9 (glob)
911 $ hg debugobshistory fdf9bde5129a -Tjson | python -m json.tool 862 rewritten by test (*20*) as fdf9bde5129a (glob)
863
864 Check that debugobshistory on the second diverged revision show the revision
865 and the diverent one
866 $ hg debugobshistory 65b757b745b9
867 @ 65b757b745b9 (3) A2
868 |
869 x 471f378eab4c (1) A0
870 rewritten by test (*20*) as 65b757b745b9 (glob)
871 rewritten by test (*20*) as fdf9bde5129a (glob)
872
873 Check that debugobshistory on the both diverged revision show a coherent
874 graph
875 $ hg debugobshistory '65b757b745b9+fdf9bde5129a'
876 @ 65b757b745b9 (3) A2
877 |
878 | o fdf9bde5129a (2) A1
879 |/
880 x 471f378eab4c (1) A0
881 rewritten by test (*20*) as 65b757b745b9 (glob)
882 rewritten by test (*20*) as fdf9bde5129a (glob)
883
884 $ hg debugobshistory '65b757b745b9+fdf9bde5129a' --no-graph -Tjson | python -m json.tool
912 [ 885 [
913 { 886 {
914 "debugobshistory.markers": [], 887 "debugobshistory.markers": [],
915 "debugobshistory.node": "fdf9bde5129a", 888 "debugobshistory.node": "65b757b745b9",
916 "debugobshistory.rev": 2, 889 "debugobshistory.rev": 3,
917 "debugobshistory.shortdescription": "A1" 890 "debugobshistory.shortdescription": "A2"
918 }, 891 },
919 { 892 {
920 "debugobshistory.markers": [ 893 "debugobshistory.markers": [
921 { 894 {
922 "debugobshistory.marker_date": [ 895 "debugobshistory.marker_date": [
942 } 915 }
943 ], 916 ],
944 "debugobshistory.node": "471f378eab4c", 917 "debugobshistory.node": "471f378eab4c",
945 "debugobshistory.rev": 1, 918 "debugobshistory.rev": 1,
946 "debugobshistory.shortdescription": "A0" 919 "debugobshistory.shortdescription": "A0"
947 } 920 },
948 ]
949 $ hg debugobshistory 65b757b745b9
950 65b757b745b9 (3) A2
951 471f378eab4c (1) A0
952 rewritten by test (*20*) as 65b757b745b9 (glob)
953 rewritten by test (*20*) as fdf9bde5129a (glob)
954 $ hg debugobshistory 65b757b745b9 -Tjson | python -m json.tool
955 [
956 { 921 {
957 "debugobshistory.markers": [], 922 "debugobshistory.markers": [],
958 "debugobshistory.node": "65b757b745b9", 923 "debugobshistory.node": "fdf9bde5129a",
959 "debugobshistory.rev": 3, 924 "debugobshistory.rev": 2,
960 "debugobshistory.shortdescription": "A2" 925 "debugobshistory.shortdescription": "A1"
961 },
962 {
963 "debugobshistory.markers": [
964 {
965 "debugobshistory.marker_date": [
966 *, (glob)
967 0 (glob)
968 ],
969 "debugobshistory.marker_user": "test",
970 "debugobshistory.succnodes": [
971 "65b757b745b9"
972 ],
973 "debugobshistory.verb": "rewritten"
974 },
975 {
976 "debugobshistory.marker_date": [
977 *, (glob)
978 0 (glob)
979 ],
980 "debugobshistory.marker_user": "test",
981 "debugobshistory.succnodes": [
982 "fdf9bde5129a"
983 ],
984 "debugobshistory.verb": "rewritten"
985 }
986 ],
987 "debugobshistory.node": "471f378eab4c",
988 "debugobshistory.rev": 1,
989 "debugobshistory.shortdescription": "A0"
990 } 926 }
991 ] 927 ]
992 $ hg update 471f378eab4c 928 $ hg update 471f378eab4c
993 abort: hidden revision '471f378eab4c'! 929 abort: hidden revision '471f378eab4c'!
994 (use --hidden to access hidden revisions; diverged) 930 (use --hidden to access hidden revisions; diverged)
1066 summary: ROOT 1002 summary: ROOT
1067 1003
1068 Actual test 1004 Actual test
1069 ----------- 1005 -----------
1070 1006
1071 $ hg debugobshistory --hidden 471f378eab4c 1007 Check that debugobshistory on head show a coherent graph
1072 471f378eab4c (1) A0
1073 rewritten by test (*20*) as eb5a0daa2192 (glob)
1074 $ hg debugobshistory --hidden 471f378eab4c -Tjson | python -m json.tool
1075 [
1076 {
1077 "debugobshistory.markers": [
1078 {
1079 "debugobshistory.marker_date": [
1080 *, (glob)
1081 0 (glob)
1082 ],
1083 "debugobshistory.marker_user": "test",
1084 "debugobshistory.succnodes": [
1085 "eb5a0daa2192"
1086 ],
1087 "debugobshistory.verb": "rewritten"
1088 }
1089 ],
1090 "debugobshistory.node": "471f378eab4c",
1091 "debugobshistory.rev": 1,
1092 "debugobshistory.shortdescription": "A0"
1093 }
1094 ]
1095 $ hg debugobshistory --hidden 0dec01379d3b
1096 0dec01379d3b (2) B0
1097 rewritten by test (*20*) as b7ea6d14e664 (glob)
1098 $ hg debugobshistory --hidden 0dec01379d3b -Tjson | python -m json.tool
1099 [
1100 {
1101 "debugobshistory.markers": [
1102 {
1103 "debugobshistory.marker_date": [
1104 *, (glob)
1105 0 (glob)
1106 ],
1107 "debugobshistory.marker_user": "test",
1108 "debugobshistory.succnodes": [
1109 "b7ea6d14e664"
1110 ],
1111 "debugobshistory.verb": "rewritten"
1112 }
1113 ],
1114 "debugobshistory.node": "0dec01379d3b",
1115 "debugobshistory.rev": 2,
1116 "debugobshistory.shortdescription": "B0"
1117 }
1118 ]
1119 $ hg debugobshistory eb5a0daa2192 1008 $ hg debugobshistory eb5a0daa2192
1120 eb5a0daa2192 (4) C0 1009 @ eb5a0daa2192 (4) C0
1121 b7ea6d14e664 (3) B1 1010 |\
1122 rewritten by test (*20*) as eb5a0daa2192 (glob) 1011 x | 471f378eab4c (1) A0
1123 0dec01379d3b (2) B0 1012 / rewritten by test (*20*) as eb5a0daa2192 (glob)
1124 rewritten by test (*20*) as b7ea6d14e664 (glob) 1013 |
1125 471f378eab4c (1) A0 1014 x b7ea6d14e664 (3) B1
1126 rewritten by test (*20*) as eb5a0daa2192 (glob) 1015 | rewritten by test (*20*) as eb5a0daa2192 (glob)
1127 $ hg debugobshistory eb5a0daa2192 -Tjson | python -m json.tool 1016 |
1017 x 0dec01379d3b (2) B0
1018 rewritten by test (*20*) as b7ea6d14e664 (glob)
1019
1020 $ hg debugobshistory eb5a0daa2192 --no-graph -Tjson | python -m json.tool
1128 [ 1021 [
1129 { 1022 {
1130 "debugobshistory.markers": [], 1023 "debugobshistory.markers": [],
1131 "debugobshistory.node": "eb5a0daa2192", 1024 "debugobshistory.node": "eb5a0daa2192",
1132 "debugobshistory.rev": 4, 1025 "debugobshistory.rev": 4,
1275 1168
1276 Actual test 1169 Actual test
1277 ----------- 1170 -----------
1278 1171
1279 $ hg debugobshistory 7a230b46bf61 1172 $ hg debugobshistory 7a230b46bf61
1280 7a230b46bf61 (3) A2 1173 @ 7a230b46bf61 (3) A2
1281 fdf9bde5129a (2) A1 1174 |
1282 rewritten by test (*20*) as 7a230b46bf61 (glob) 1175 x fdf9bde5129a (2) A1
1283 471f378eab4c (1) A0 1176 | rewritten by test (*20*) as 7a230b46bf61 (glob)
1284 rewritten by test (*20*) as fdf9bde5129a (glob) 1177 |
1178 x 471f378eab4c (1) A0
1179 rewritten by test (*20*) as fdf9bde5129a (glob)
1180
1285 $ cd $TESTTMP/local-remote-markers-2 1181 $ cd $TESTTMP/local-remote-markers-2
1286 $ hg pull 1182 $ hg pull
1287 pulling from $TESTTMP/local-remote-markers-1 1183 pulling from $TESTTMP/local-remote-markers-1
1288 searching for changes 1184 searching for changes
1289 adding changesets 1185 adding changesets
1292 added 1 changesets with 0 changes to 1 files (+1 heads) 1188 added 1 changesets with 0 changes to 1 files (+1 heads)
1293 2 new obsolescence markers 1189 2 new obsolescence markers
1294 (run 'hg heads' to see heads, 'hg merge' to merge) 1190 (run 'hg heads' to see heads, 'hg merge' to merge)
1295 working directory parent is obsolete! (471f378eab4c) 1191 working directory parent is obsolete! (471f378eab4c)
1296 (use 'hg evolve' to update to its successor: 7a230b46bf61) 1192 (use 'hg evolve' to update to its successor: 7a230b46bf61)
1297 $ hg debugobshistory 7a230b46bf61 --traceback 1193 Check that debugobshistory works with markers pointing to missing local
1298 7a230b46bf61 (2) A2 1194 changectx
1299 fdf9bde5129a 1195 $ hg debugobshistory 7a230b46bf61
1300 rewritten by test (*20*) as 7a230b46bf61 (glob) 1196 o 7a230b46bf61 (2) A2
1301 471f378eab4c (1) A0 1197 |
1302 rewritten by test (*20*) as fdf9bde5129a (glob) 1198 x fdf9bde5129a
1199 | rewritten by test (*20*) as 7a230b46bf61 (glob)
1200 |
1201 @ 471f378eab4c (1) A0
1202 rewritten by test (*20*) as fdf9bde5129a (glob)
1203
1303 $ hg debugobshistory 7a230b46bf61 --color=debug 1204 $ hg debugobshistory 7a230b46bf61 --color=debug
1304 [evolve.node|7a230b46bf61] [evolve.rev|(2)] [evolve.short_description|A2] 1205 o [evolve.node|7a230b46bf61] [evolve.rev|(2)] [evolve.short_description|A2]
1305 [evolve.node evolve.missing_change_ctx|fdf9bde5129a] 1206 |
1306 [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|7a230b46bf61] (glob) 1207 x [evolve.node evolve.missing_change_ctx|fdf9bde5129a]
1307 [evolve.node|471f378eab4c] [evolve.rev|(1)] [evolve.short_description|A0] 1208 | [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|7a230b46bf61] (glob)
1308 [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|fdf9bde5129a] (glob) 1209 |
1210 @ [evolve.node|471f378eab4c] [evolve.rev|(1)] [evolve.short_description|A0]
1211 [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|fdf9bde5129a] (glob)
1212
1213
1214 Test with cycle
1215 ===============
1216
1217 Test setup
1218 ----------
1219
1220 $ hg init $TESTTMP/cycle
1221 $ cd $TESTTMP/cycle
1222 $ mkcommit ROOT
1223 $ mkcommit A
1224 $ mkcommit B
1225 $ mkcommit C
1226 $ hg log -G
1227 @ changeset: 3:a8df460dbbfe
1228 | tag: tip
1229 | user: test
1230 | date: Thu Jan 01 00:00:00 1970 +0000
1231 | summary: C
1232 |
1233 o changeset: 2:c473644ee0e9
1234 | user: test
1235 | date: Thu Jan 01 00:00:00 1970 +0000
1236 | summary: B
1237 |
1238 o changeset: 1:2a34000d3544
1239 | user: test
1240 | date: Thu Jan 01 00:00:00 1970 +0000
1241 | summary: A
1242 |
1243 o changeset: 0:ea207398892e
1244 user: test
1245 date: Thu Jan 01 00:00:00 1970 +0000
1246 summary: ROOT
1247
1248 Create a cycle
1249 $ hg prune -s 2 1
1250 1 changesets pruned
1251 2 new unstable changesets
1252 $ hg prune -s 3 2
1253 1 changesets pruned
1254 $ hg prune -s 1 3
1255 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1256 working directory now at 2a34000d3544
1257 1 changesets pruned
1258 $ hg log --hidden -G
1259 x changeset: 3:a8df460dbbfe
1260 | tag: tip
1261 | user: test
1262 | date: Thu Jan 01 00:00:00 1970 +0000
1263 | summary: C
1264 |
1265 x changeset: 2:c473644ee0e9
1266 | user: test
1267 | date: Thu Jan 01 00:00:00 1970 +0000
1268 | summary: B
1269 |
1270 @ changeset: 1:2a34000d3544
1271 | user: test
1272 | date: Thu Jan 01 00:00:00 1970 +0000
1273 | summary: A
1274 |
1275 o changeset: 0:ea207398892e
1276 user: test
1277 date: Thu Jan 01 00:00:00 1970 +0000
1278 summary: ROOT
1279
1280 Actual test
1281 -----------
1282
1283 Check that debugobshistory never crash on a cycle
1284
1285 $ hg debugobshistory 1 --hidden
1286 @ 2a34000d3544 (1) A
1287 | rewritten by test (*20*) as c473644ee0e9 (glob)
1288 |
1289 x a8df460dbbfe (3) C
1290 | rewritten by test (*20*) as 2a34000d3544 (glob)
1291 |
1292 x c473644ee0e9 (2) B
1293 | rewritten by test (*20*) as a8df460dbbfe (glob)
1294 |
1295 $ hg debugobshistory 2 --hidden
1296 @ 2a34000d3544 (1) A
1297 | rewritten by test (*20*) as c473644ee0e9 (glob)
1298 |
1299 x a8df460dbbfe (3) C
1300 | rewritten by test (*20*) as 2a34000d3544 (glob)
1301 |
1302 x c473644ee0e9 (2) B
1303 | rewritten by test (*20*) as a8df460dbbfe (glob)
1304 |
1305 $ hg debugobshistory 3 --hidden
1306 @ 2a34000d3544 (1) A
1307 | rewritten by test (*20*) as c473644ee0e9 (glob)
1308 |
1309 x a8df460dbbfe (3) C
1310 | rewritten by test (*20*) as 2a34000d3544 (glob)
1311 |
1312 x c473644ee0e9 (2) B
1313 | rewritten by test (*20*) as a8df460dbbfe (glob)
1314 |