comparison tests/test-tutorial.t @ 2950:1b4c92621e23

doc: integrate graphviz graphs in tutorials Use the mercurial-graphviz extension (https://bitbucket.org/octobus/mercurial_graphviz) in tutorials in order to have some dot graphs in the tutorials .t files. In order to run the tests, export the GRAPHVIZ_EXTENSION variable which points to your copy of the extension. Please be aware that pygraphviz should be installed in your environment. That should be sufficient for generating dot graphs in text format. Then generate the doc as usual, the sphinx-graphviz extension (http://www .sphinx-doc.org/en/stable/ext/graphviz.html) has been added and it should handle the generation of the graphs. Please be aware that you need the dot binary installed in your system. Please refer to the extension documentation for more configuration.
author Boris Feld <boris.feld@octobus.net>
date Tue, 29 Aug 2017 16:42:40 +0200
parents 06844693bb21
children 2ddc63d13af8
comparison
equal deleted inserted replaced
2949:9345b2eeeef3 2950:1b4c92621e23
63 > evolve = $TESTDIR/../hgext3rd/evolve/ 63 > evolve = $TESTDIR/../hgext3rd/evolve/
64 > # enabling rebase is also needed for now 64 > # enabling rebase is also needed for now
65 > rebase = 65 > rebase =
66 > EOF 66 > EOF
67 67
68 $ . "$TESTDIR/testlib/graphviz_setup.sh" #ignore
69
68 ----------------------- 70 -----------------------
69 Single Developer Usage 71 Single Developer Usage
70 ----------------------- 72 -----------------------
71 73
72 This tutorial shows how to use evolution to rewrite history locally. 74 This tutorial shows how to use evolution to rewrite history locally.
123 | 125 |
124 o 4d5dc8187023 (draft): adding condiment 126 o 4d5dc8187023 (draft): adding condiment
125 | 127 |
126 o 7e82d3f3c2cb (public): Monthy Python Shopping list 128 o 7e82d3f3c2cb (public): Monthy Python Shopping list
127 129
130 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
131 .. graphviz::
132
133 strict digraph {
134 graph [rankdir=LR,
135 splines=polyline
136 ];
137 node [label="\N"];
138 0 [fillcolor="#7F7FFF",
139 fixedsize=true,
140 group=default,
141 height=2,
142 label="0: 7e82d3f3c2cb",
143 pin=true,
144 pos="1,0!",
145 shape=circle,
146 style=filled,
147 width=2];
148 1 [fillcolor="#7F7FFF",
149 fixedsize=true,
150 group=default,
151 height=2,
152 label="1: 4d5dc8187023",
153 pin=true,
154 pos="1,1!",
155 shape=pentagon,
156 style=filled,
157 width=2];
158 0 -> 1;
159 2 [fillcolor="#7F7FFF",
160 fixedsize=true,
161 group=default,
162 height=2,
163 label="2: d85de4546133",
164 pin=true,
165 pos="1,2!",
166 shape=pentagon,
167 style=filled,
168 width=2];
169 1 -> 2;
170 }
128 171
129 But a typo was made in Babanas! 172 But a typo was made in Babanas!
130 173
131 $ hg export tip 174 $ hg export tip
132 # HG changeset patch 175 # HG changeset patch
156 | 199 |
157 o 4d5dc8187023 (draft): adding condiment 200 o 4d5dc8187023 (draft): adding condiment
158 | 201 |
159 o 7e82d3f3c2cb (public): Monthy Python Shopping list 202 o 7e82d3f3c2cb (public): Monthy Python Shopping list
160 203
204
205 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
206 .. graphviz::
207
208 strict digraph {
209 graph [rankdir=LR,
210 splines=polyline
211 ];
212 node [label="\N"];
213 0 [fillcolor="#7F7FFF",
214 fixedsize=true,
215 group=default,
216 height=2,
217 label="0: 7e82d3f3c2cb",
218 pin=true,
219 pos="1,0!",
220 shape=circle,
221 style=filled,
222 width=2];
223 1 [fillcolor="#7F7FFF",
224 fixedsize=true,
225 group=default,
226 height=2,
227 label="1: 4d5dc8187023",
228 pin=true,
229 pos="1,1!",
230 shape=pentagon,
231 style=filled,
232 width=2];
233 0 -> 1;
234 2 [fillcolor="#7F7FFF",
235 fixedsize=true,
236 group=default,
237 height=2,
238 label="2: d85de4546133",
239 pin=true,
240 pos="1,2!",
241 shape=pentagon,
242 style=filled,
243 width=2];
244 1 -> 2;
245 }
161 246
162 Hopefully. I can use `hg commit --amend` to rewrite my faulty changeset! 247 Hopefully. I can use `hg commit --amend` to rewrite my faulty changeset!
163 248
164 $ sed -i'' -e s/Bananos/Banana/ shopping 249 $ sed -i'' -e s/Bananos/Banana/ shopping
165 $ hg diff 250 $ hg diff
183 | 268 |
184 o 4d5dc8187023 (draft): adding condiment 269 o 4d5dc8187023 (draft): adding condiment
185 | 270 |
186 o 7e82d3f3c2cb (public): Monthy Python Shopping list 271 o 7e82d3f3c2cb (public): Monthy Python Shopping list
187 272
273 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
274 .. graphviz::
275
276 strict digraph {
277 graph [rankdir=LR,
278 splines=polyline
279 ];
280 node [label="\N"];
281 0 [fillcolor="#7F7FFF",
282 fixedsize=true,
283 group=default,
284 height=2,
285 label="0: 7e82d3f3c2cb",
286 pin=true,
287 pos="1,0!",
288 shape=circle,
289 style=filled,
290 width=2];
291 1 [fillcolor="#7F7FFF",
292 fixedsize=true,
293 group=default,
294 height=2,
295 label="1: 4d5dc8187023",
296 pin=true,
297 pos="1,1!",
298 shape=pentagon,
299 style=filled,
300 width=2];
301 0 -> 1;
302 4 [fillcolor="#7F7FFF",
303 fixedsize=true,
304 group=default,
305 height=2,
306 label="4: 9d0363b81950",
307 pin=true,
308 pos="1,4!",
309 shape=pentagon,
310 style=filled,
311 width=2];
312 1 -> 4;
313 }
314
188 $ hg export tip 315 $ hg export tip
189 # HG changeset patch 316 # HG changeset patch
190 # User test 317 # User test
191 # Date 0 0 318 # Date 0 0
192 # Thu Jan 01 00:00:00 1970 +0000 319 # Thu Jan 01 00:00:00 1970 +0000
237 | o 4d5dc8187023 (draft): adding condiment 364 | o 4d5dc8187023 (draft): adding condiment
238 |/ 365 |/
239 o 7e82d3f3c2cb (public): Monthy Python Shopping list 366 o 7e82d3f3c2cb (public): Monthy Python Shopping list
240 367
241 368
369 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
370 .. graphviz::
371
372 strict digraph {
373 graph [rankdir=LR,
374 splines=polyline
375 ];
376 node [label="\N"];
377 0 [fillcolor="#7F7FFF",
378 fixedsize=true,
379 group=default,
380 height=2,
381 label="0: 7e82d3f3c2cb",
382 pin=true,
383 pos="1,0!",
384 shape=circle,
385 style=filled,
386 width=2];
387 1 [fillcolor="#7F7FFF",
388 fixedsize=true,
389 group=default,
390 height=2,
391 label="1: 4d5dc8187023",
392 pin=true,
393 pos="1,1!",
394 shape=pentagon,
395 style=filled,
396 width=2];
397 0 -> 1;
398 5 [fillcolor="#7F7FFF",
399 fixedsize=true,
400 group=default,
401 height=2,
402 label="5: 9ca060c80d74",
403 pin=true,
404 pos="1,5!",
405 shape=circle,
406 style=filled,
407 width=2];
408 0 -> 5;
409 4 [fillcolor="#7F7FFF",
410 fixedsize=true,
411 group=default,
412 height=2,
413 label="4: 9d0363b81950",
414 pin=true,
415 pos="1,4!",
416 shape=pentagon,
417 style=filled,
418 width=2];
419 1 -> 4;
420 }
421
242 Instead of merging my head with the new one. I'm going to rebase my work 422 Instead of merging my head with the new one. I'm going to rebase my work
243 423
244 $ hg diff 424 $ hg diff
245 $ hg rebase --dest 9ca060c80d74 --source 4d5dc8187023 425 $ hg rebase --dest 9ca060c80d74 --source 4d5dc8187023
246 rebasing 1:4d5dc8187023 "adding condiment" 426 rebasing 1:4d5dc8187023 "adding condiment"
258 | 438 |
259 o 9ca060c80d74 (public): SPAM 439 o 9ca060c80d74 (public): SPAM
260 | 440 |
261 o 7e82d3f3c2cb (public): Monthy Python Shopping list 441 o 7e82d3f3c2cb (public): Monthy Python Shopping list
262 442
443 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
444 .. graphviz::
445
446 strict digraph {
447 graph [rankdir=LR,
448 splines=polyline
449 ];
450 node [label="\N"];
451 0 [fillcolor="#7F7FFF",
452 fixedsize=true,
453 group=default,
454 height=2,
455 label="0: 7e82d3f3c2cb",
456 pin=true,
457 pos="1,0!",
458 shape=circle,
459 style=filled,
460 width=2];
461 5 [fillcolor="#7F7FFF",
462 fixedsize=true,
463 group=default,
464 height=2,
465 label="5: 9ca060c80d74",
466 pin=true,
467 pos="1,5!",
468 shape=circle,
469 style=filled,
470 width=2];
471 0 -> 5;
472 6 [fillcolor="#7F7FFF",
473 fixedsize=true,
474 group=default,
475 height=2,
476 label="6: dfd3a2d7691e",
477 pin=true,
478 pos="1,6!",
479 shape=pentagon,
480 style=filled,
481 width=2];
482 5 -> 6;
483 7 [fillcolor="#7F7FFF",
484 fixedsize=true,
485 group=default,
486 height=2,
487 label="7: 41aff6a42b75",
488 pin=true,
489 pos="1,7!",
490 shape=pentagon,
491 style=filled,
492 width=2];
493 6 -> 7;
494 }
263 495
264 Removing changesets 496 Removing changesets
265 ------------------------ 497 ------------------------
266 498
267 I add new items to my list. 499 I add new items to my list.
303 o 9ca060c80d74 (public): SPAM 535 o 9ca060c80d74 (public): SPAM
304 | 536 |
305 o 7e82d3f3c2cb (public): Monthy Python Shopping list 537 o 7e82d3f3c2cb (public): Monthy Python Shopping list
306 538
307 539
540 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
541 .. graphviz::
542
543 strict digraph {
544 graph [rankdir=LR,
545 splines=polyline
546 ];
547 node [label="\N"];
548 0 [fillcolor="#7F7FFF",
549 fixedsize=true,
550 group=default,
551 height=2,
552 label="0: 7e82d3f3c2cb",
553 pin=true,
554 pos="1,0!",
555 shape=circle,
556 style=filled,
557 width=2];
558 5 [fillcolor="#7F7FFF",
559 fixedsize=true,
560 group=default,
561 height=2,
562 label="5: 9ca060c80d74",
563 pin=true,
564 pos="1,5!",
565 shape=circle,
566 style=filled,
567 width=2];
568 0 -> 5;
569 6 [fillcolor="#7F7FFF",
570 fixedsize=true,
571 group=default,
572 height=2,
573 label="6: dfd3a2d7691e",
574 pin=true,
575 pos="1,6!",
576 shape=pentagon,
577 style=filled,
578 width=2];
579 5 -> 6;
580 7 [fillcolor="#7F7FFF",
581 fixedsize=true,
582 group=default,
583 height=2,
584 label="7: 41aff6a42b75",
585 pin=true,
586 pos="1,7!",
587 shape=pentagon,
588 style=filled,
589 width=2];
590 6 -> 7;
591 }
592
308 Reordering changesets 593 Reordering changesets
309 ------------------------ 594 ------------------------
310 595
311 596
312 We create two changesets. 597 We create two changesets.
364 | 649 |
365 o 9ca060c80d74 (public): SPAM 650 o 9ca060c80d74 (public): SPAM
366 | 651 |
367 o 7e82d3f3c2cb (public): Monthy Python Shopping list 652 o 7e82d3f3c2cb (public): Monthy Python Shopping list
368 653
654
655 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
656 .. graphviz::
657
658 strict digraph {
659 graph [rankdir=LR,
660 splines=polyline
661 ];
662 node [label="\N"];
663 0 [fillcolor="#7F7FFF",
664 fixedsize=true,
665 group=default,
666 height=2,
667 label="0: 7e82d3f3c2cb",
668 pin=true,
669 pos="1,0!",
670 shape=circle,
671 style=filled,
672 width=2];
673 5 [fillcolor="#7F7FFF",
674 fixedsize=true,
675 group=default,
676 height=2,
677 label="5: 9ca060c80d74",
678 pin=true,
679 pos="1,5!",
680 shape=circle,
681 style=filled,
682 width=2];
683 0 -> 5;
684 6 [fillcolor="#7F7FFF",
685 fixedsize=true,
686 group=default,
687 height=2,
688 label="6: dfd3a2d7691e",
689 pin=true,
690 pos="1,6!",
691 shape=pentagon,
692 style=filled,
693 width=2];
694 5 -> 6;
695 7 [fillcolor="#7F7FFF",
696 fixedsize=true,
697 group=default,
698 height=2,
699 label="7: 41aff6a42b75",
700 pin=true,
701 pos="1,7!",
702 shape=pentagon,
703 style=filled,
704 width=2];
705 6 -> 7;
706 9 [fillcolor="#7F7FFF",
707 fixedsize=true,
708 group=default,
709 height=2,
710 label="9: 10b8aeaa8cc8",
711 pin=true,
712 pos="1,9!",
713 shape=pentagon,
714 style=filled,
715 width=2];
716 7 -> 9;
717 11 [fillcolor="#7F7FFF",
718 fixedsize=true,
719 group=default,
720 height=2,
721 label="11: a224f2a4fb9f",
722 pin=true,
723 pos="1,11!",
724 shape=pentagon,
725 style=filled,
726 width=2];
727 7 -> 11;
728 }
369 729
370 We have a new SPAM SPAM version without the bathroom stuff 730 We have a new SPAM SPAM version without the bathroom stuff
371 731
372 $ grep Spam shopping # enough spam 732 $ grep Spam shopping # enough spam
373 Spam Spam Spam Spam Spam Spam Spam Spam Spam 733 Spam Spam Spam Spam Spam Spam Spam Spam Spam
427 o 9ca060c80d74 (public): SPAM 787 o 9ca060c80d74 (public): SPAM
428 | 788 |
429 o 7e82d3f3c2cb (public): Monthy Python Shopping list 789 o 7e82d3f3c2cb (public): Monthy Python Shopping list
430 790
431 791
432 792 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
793 .. graphviz::
794
795 strict digraph {
796 graph [rankdir=LR,
797 splines=polyline
798 ];
799 node [label="\N"];
800 0 [fillcolor="#7F7FFF",
801 fixedsize=true,
802 group=default,
803 height=2,
804 label="0: 7e82d3f3c2cb",
805 pin=true,
806 pos="1,0!",
807 shape=circle,
808 style=filled,
809 width=2];
810 5 [fillcolor="#7F7FFF",
811 fixedsize=true,
812 group=default,
813 height=2,
814 label="5: 9ca060c80d74",
815 pin=true,
816 pos="1,5!",
817 shape=circle,
818 style=filled,
819 width=2];
820 0 -> 5;
821 6 [fillcolor="#7F7FFF",
822 fixedsize=true,
823 group=default,
824 height=2,
825 label="6: dfd3a2d7691e",
826 pin=true,
827 pos="1,6!",
828 shape=circle,
829 style=filled,
830 width=2];
831 5 -> 6;
832 7 [fillcolor="#7F7FFF",
833 fixedsize=true,
834 group=default,
835 height=2,
836 label="7: 41aff6a42b75",
837 pin=true,
838 pos="1,7!",
839 shape=circle,
840 style=filled,
841 width=2];
842 6 -> 7;
843 11 [fillcolor="#7F7FFF",
844 fixedsize=true,
845 group=default,
846 height=2,
847 label="11: a224f2a4fb9f",
848 pin=true,
849 pos="1,11!",
850 shape=circle,
851 style=filled,
852 width=2];
853 7 -> 11;
854 12 [fillcolor="#7F7FFF",
855 fixedsize=true,
856 group=default,
857 height=2,
858 label="12: 75954b8cd933",
859 pin=true,
860 pos="1,12!",
861 shape=pentagon,
862 style=filled,
863 width=2];
864 11 -> 12;
865 }
433 866
434 Splitting change 867 Splitting change
435 ------------------ 868 ------------------
436 869
437 This part is not written yet, but you can use either the `histedit` extension 870 This part is not written yet, but you can use either the `histedit` extension
638 o 9ca060c80d74 (public): SPAM 1071 o 9ca060c80d74 (public): SPAM
639 | 1072 |
640 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1073 o 7e82d3f3c2cb (public): Monthy Python Shopping list
641 1074
642 1075
1076 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
1077 .. graphviz::
1078
1079 strict digraph {
1080 graph [rankdir=LR,
1081 splines=polyline
1082 ];
1083 node [label="\N"];
1084 0 [fillcolor="#7F7FFF",
1085 fixedsize=true,
1086 group=default,
1087 height=2,
1088 label="0: 7e82d3f3c2cb",
1089 pin=true,
1090 pos="1,0!",
1091 shape=circle,
1092 style=filled,
1093 width=2];
1094 5 [fillcolor="#7F7FFF",
1095 fixedsize=true,
1096 group=default,
1097 height=2,
1098 label="5: 9ca060c80d74",
1099 pin=true,
1100 pos="1,5!",
1101 shape=circle,
1102 style=filled,
1103 width=2];
1104 0 -> 5;
1105 6 [fillcolor="#7F7FFF",
1106 fixedsize=true,
1107 group=default,
1108 height=2,
1109 label="6: dfd3a2d7691e",
1110 pin=true,
1111 pos="1,6!",
1112 shape=circle,
1113 style=filled,
1114 width=2];
1115 5 -> 6;
1116 7 [fillcolor="#7F7FFF",
1117 fixedsize=true,
1118 group=default,
1119 height=2,
1120 label="7: 41aff6a42b75",
1121 pin=true,
1122 pos="1,7!",
1123 shape=circle,
1124 style=filled,
1125 width=2];
1126 6 -> 7;
1127 11 [fillcolor="#7F7FFF",
1128 fixedsize=true,
1129 group=default,
1130 height=2,
1131 label="11: a224f2a4fb9f",
1132 pin=true,
1133 pos="1,11!",
1134 shape=circle,
1135 style=filled,
1136 width=2];
1137 7 -> 11;
1138 14 [fillcolor="#7F7FFF",
1139 fixedsize=true,
1140 group=default,
1141 height=2,
1142 label="14: a44c85f957d3",
1143 pin=true,
1144 pos="1,14!",
1145 shape=pentagon,
1146 style=filled,
1147 width=2];
1148 11 -> 14;
1149 }
1150
643 When we pull from remote again we get an unstable state! 1151 When we pull from remote again we get an unstable state!
644 1152
645 $ hg pull remote 1153 $ hg pull remote
646 pulling from $TESTTMP/remote (glob) 1154 pulling from $TESTTMP/remote (glob)
647 searching for changes 1155 searching for changes
672 o 9ca060c80d74 (public): SPAM 1180 o 9ca060c80d74 (public): SPAM
673 | 1181 |
674 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1182 o 7e82d3f3c2cb (public): Monthy Python Shopping list
675 1183
676 1184
1185 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
1186 .. graphviz::
1187
1188 strict digraph {
1189 graph [rankdir=LR,
1190 splines=polyline
1191 ];
1192 node [label="\N"];
1193 0 [fillcolor="#7F7FFF",
1194 fixedsize=true,
1195 group=default,
1196 height=2,
1197 label="0: 7e82d3f3c2cb",
1198 pin=true,
1199 pos="1,0!",
1200 shape=circle,
1201 style=filled,
1202 width=2];
1203 5 [fillcolor="#7F7FFF",
1204 fixedsize=true,
1205 group=default,
1206 height=2,
1207 label="5: 9ca060c80d74",
1208 pin=true,
1209 pos="1,5!",
1210 shape=circle,
1211 style=filled,
1212 width=2];
1213 0 -> 5;
1214 6 [fillcolor="#7F7FFF",
1215 fixedsize=true,
1216 group=default,
1217 height=2,
1218 label="6: dfd3a2d7691e",
1219 pin=true,
1220 pos="1,6!",
1221 shape=circle,
1222 style=filled,
1223 width=2];
1224 5 -> 6;
1225 7 [fillcolor="#7F7FFF",
1226 fixedsize=true,
1227 group=default,
1228 height=2,
1229 label="7: 41aff6a42b75",
1230 pin=true,
1231 pos="1,7!",
1232 shape=circle,
1233 style=filled,
1234 width=2];
1235 6 -> 7;
1236 11 [fillcolor="#7F7FFF",
1237 fixedsize=true,
1238 group=default,
1239 height=2,
1240 label="11: a224f2a4fb9f",
1241 pin=true,
1242 pos="1,11!",
1243 shape=circle,
1244 style=filled,
1245 width=2];
1246 7 -> 11;
1247 12 [fillcolor="#DFDFFF",
1248 fixedsize=true,
1249 group=default_alt,
1250 height=2,
1251 label="12: 75954b8cd933",
1252 pin=true,
1253 pos="2,12!",
1254 shape=pentagon,
1255 style="dotted, filled",
1256 width=2];
1257 11 -> 12;
1258 14 [fillcolor="#7F7FFF",
1259 fixedsize=true,
1260 group=default,
1261 height=2,
1262 label="14: a44c85f957d3",
1263 pin=true,
1264 pos="1,14!",
1265 shape=pentagon,
1266 style=filled,
1267 width=2];
1268 11 -> 14;
1269 12 -> 14 [arrowtail=dot,
1270 dir=back,
1271 minlen=0,
1272 style=dotted];
1273 15 [fillcolor="#FF3535",
1274 fixedsize=true,
1275 group=default_alt,
1276 height=2,
1277 label="15: bf1b0d202029",
1278 pin=true,
1279 pos="2,15!",
1280 shape=pentagon,
1281 style=filled,
1282 width=2];
1283 12 -> 15;
1284 }
1285
677 The older version 75954b8cd933 never ceased to exist in the local repo. It was 1286 The older version 75954b8cd933 never ceased to exist in the local repo. It was
678 just hidden and excluded from pull and push. 1287 just hidden and excluded from pull and push.
679 1288
680 .. note:: In hgview there is a nice dotted relation highlighting a44c85f957d3 as a new version of 75954b8cd933. this is not yet ported to ``hg log -G``. 1289 .. note:: In hgview there is a nice dotted relation highlighting a44c85f957d3 as a new version of 75954b8cd933. this is not yet ported to ``hg log -G``.
681 1290
723 | 1332 |
724 o 9ca060c80d74 (public): SPAM 1333 o 9ca060c80d74 (public): SPAM
725 | 1334 |
726 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1335 o 7e82d3f3c2cb (public): Monthy Python Shopping list
727 1336
1337
1338 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
1339 .. graphviz::
1340
1341 strict digraph {
1342 graph [rankdir=LR,
1343 splines=polyline
1344 ];
1345 node [label="\N"];
1346 0 [fillcolor="#7F7FFF",
1347 fixedsize=true,
1348 group=default,
1349 height=2,
1350 label="0: 7e82d3f3c2cb",
1351 pin=true,
1352 pos="1,0!",
1353 shape=circle,
1354 style=filled,
1355 width=2];
1356 5 [fillcolor="#7F7FFF",
1357 fixedsize=true,
1358 group=default,
1359 height=2,
1360 label="5: 9ca060c80d74",
1361 pin=true,
1362 pos="1,5!",
1363 shape=circle,
1364 style=filled,
1365 width=2];
1366 0 -> 5;
1367 6 [fillcolor="#7F7FFF",
1368 fixedsize=true,
1369 group=default,
1370 height=2,
1371 label="6: dfd3a2d7691e",
1372 pin=true,
1373 pos="1,6!",
1374 shape=circle,
1375 style=filled,
1376 width=2];
1377 5 -> 6;
1378 7 [fillcolor="#7F7FFF",
1379 fixedsize=true,
1380 group=default,
1381 height=2,
1382 label="7: 41aff6a42b75",
1383 pin=true,
1384 pos="1,7!",
1385 shape=circle,
1386 style=filled,
1387 width=2];
1388 6 -> 7;
1389 11 [fillcolor="#7F7FFF",
1390 fixedsize=true,
1391 group=default,
1392 height=2,
1393 label="11: a224f2a4fb9f",
1394 pin=true,
1395 pos="1,11!",
1396 shape=circle,
1397 style=filled,
1398 width=2];
1399 7 -> 11;
1400 14 [fillcolor="#7F7FFF",
1401 fixedsize=true,
1402 group=default,
1403 height=2,
1404 label="14: a44c85f957d3",
1405 pin=true,
1406 pos="1,14!",
1407 shape=pentagon,
1408 style=filled,
1409 width=2];
1410 11 -> 14;
1411 16 [fillcolor="#7F7FFF",
1412 fixedsize=true,
1413 group=default,
1414 height=2,
1415 label="16: ee942144f952",
1416 pin=true,
1417 pos="1,16!",
1418 shape=pentagon,
1419 style=filled,
1420 width=2];
1421 14 -> 16;
1422 }
728 1423
729 We can push this evolution to remote. 1424 We can push this evolution to remote.
730 1425
731 $ hg push remote 1426 $ hg push remote
732 pushing to $TESTTMP/remote (glob) 1427 pushing to $TESTTMP/remote (glob)
795 o 9ca060c80d74 (public): SPAM 1490 o 9ca060c80d74 (public): SPAM
796 | 1491 |
797 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1492 o 7e82d3f3c2cb (public): Monthy Python Shopping list
798 1493
799 1494
1495 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
1496 .. graphviz::
1497
1498 strict digraph {
1499 graph [rankdir=LR,
1500 splines=polyline
1501 ];
1502 node [label="\N"];
1503 0 [fillcolor="#7F7FFF",
1504 fixedsize=true,
1505 group=default,
1506 height=2,
1507 label="0: 7e82d3f3c2cb",
1508 pin=true,
1509 pos="1,0!",
1510 shape=circle,
1511 style=filled,
1512 width=2];
1513 5 [fillcolor="#7F7FFF",
1514 fixedsize=true,
1515 group=default,
1516 height=2,
1517 label="5: 9ca060c80d74",
1518 pin=true,
1519 pos="1,5!",
1520 shape=circle,
1521 style=filled,
1522 width=2];
1523 0 -> 5;
1524 6 [fillcolor="#7F7FFF",
1525 fixedsize=true,
1526 group=default,
1527 height=2,
1528 label="6: dfd3a2d7691e",
1529 pin=true,
1530 pos="1,6!",
1531 shape=circle,
1532 style=filled,
1533 width=2];
1534 5 -> 6;
1535 7 [fillcolor="#7F7FFF",
1536 fixedsize=true,
1537 group=default,
1538 height=2,
1539 label="7: 41aff6a42b75",
1540 pin=true,
1541 pos="1,7!",
1542 shape=circle,
1543 style=filled,
1544 width=2];
1545 6 -> 7;
1546 11 [fillcolor="#7F7FFF",
1547 fixedsize=true,
1548 group=default,
1549 height=2,
1550 label="11: a224f2a4fb9f",
1551 pin=true,
1552 pos="1,11!",
1553 shape=circle,
1554 style=filled,
1555 width=2];
1556 7 -> 11;
1557 14 [fillcolor="#7F7FFF",
1558 fixedsize=true,
1559 group=default,
1560 height=2,
1561 label="14: a44c85f957d3",
1562 pin=true,
1563 pos="1,14!",
1564 shape=pentagon,
1565 style=filled,
1566 width=2];
1567 11 -> 14;
1568 16 [fillcolor="#7F7FFF",
1569 fixedsize=true,
1570 group=default,
1571 height=2,
1572 label="16: ee942144f952",
1573 pin=true,
1574 pos="1,16!",
1575 shape=pentagon,
1576 style=filled,
1577 width=2];
1578 14 -> 16;
1579 17 [fillcolor="#7F7FFF",
1580 fixedsize=true,
1581 group=default,
1582 height=2,
1583 label="17: 99f039c5ec9e",
1584 pin=true,
1585 pos="1,17!",
1586 shape=pentagon,
1587 style=filled,
1588 width=2];
1589 16 -> 17;
1590 }
1591
800 In the mean time I noticed you can't buy animals in a super market and I prune the animal changeset: 1592 In the mean time I noticed you can't buy animals in a super market and I prune the animal changeset:
801 1593
802 $ hg prune ee942144f952 1594 $ hg prune ee942144f952
803 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 1595 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
804 working directory now at a44c85f957d3 1596 working directory now at a44c85f957d3
824 | 1616 |
825 o 9ca060c80d74 (public): SPAM 1617 o 9ca060c80d74 (public): SPAM
826 | 1618 |
827 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1619 o 7e82d3f3c2cb (public): Monthy Python Shopping list
828 1620
1621
1622 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
1623 .. graphviz::
1624
1625 strict digraph {
1626 graph [rankdir=LR,
1627 splines=polyline
1628 ];
1629 node [label="\N"];
1630 0 [fillcolor="#7F7FFF",
1631 fixedsize=true,
1632 group=default,
1633 height=2,
1634 label="0: 7e82d3f3c2cb",
1635 pin=true,
1636 pos="1,0!",
1637 shape=circle,
1638 style=filled,
1639 width=2];
1640 5 [fillcolor="#7F7FFF",
1641 fixedsize=true,
1642 group=default,
1643 height=2,
1644 label="5: 9ca060c80d74",
1645 pin=true,
1646 pos="1,5!",
1647 shape=circle,
1648 style=filled,
1649 width=2];
1650 0 -> 5;
1651 6 [fillcolor="#7F7FFF",
1652 fixedsize=true,
1653 group=default,
1654 height=2,
1655 label="6: dfd3a2d7691e",
1656 pin=true,
1657 pos="1,6!",
1658 shape=circle,
1659 style=filled,
1660 width=2];
1661 5 -> 6;
1662 7 [fillcolor="#7F7FFF",
1663 fixedsize=true,
1664 group=default,
1665 height=2,
1666 label="7: 41aff6a42b75",
1667 pin=true,
1668 pos="1,7!",
1669 shape=circle,
1670 style=filled,
1671 width=2];
1672 6 -> 7;
1673 11 [fillcolor="#7F7FFF",
1674 fixedsize=true,
1675 group=default,
1676 height=2,
1677 label="11: a224f2a4fb9f",
1678 pin=true,
1679 pos="1,11!",
1680 shape=circle,
1681 style=filled,
1682 width=2];
1683 7 -> 11;
1684 14 [fillcolor="#7F7FFF",
1685 fixedsize=true,
1686 group=default,
1687 height=2,
1688 label="14: a44c85f957d3",
1689 pin=true,
1690 pos="1,14!",
1691 shape=pentagon,
1692 style=filled,
1693 width=2];
1694 11 -> 14;
1695 16 [fillcolor="#DFDFFF",
1696 fixedsize=true,
1697 group=default_alt,
1698 height=2,
1699 label="16: ee942144f952",
1700 pin=true,
1701 pos="2,16!",
1702 shape=pentagon,
1703 style="dotted, filled",
1704 width=2];
1705 14 -> 16;
1706 17 [fillcolor="#FF3535",
1707 fixedsize=true,
1708 group=default_alt,
1709 height=2,
1710 label="17: 99f039c5ec9e",
1711 pin=true,
1712 pos="2,17!",
1713 shape=pentagon,
1714 style=filled,
1715 width=2];
1716 16 -> 17;
1717 }
1718
829 $ hg log -r "orphan()" 1719 $ hg log -r "orphan()"
830 99f039c5ec9e (draft): SPAM SPAM SPAM 1720 99f039c5ec9e (draft): SPAM SPAM SPAM
1721
1722 $ hg graphviz -r "orphan()" --sphinx-directive --rankdir LR #ignore
1723 .. graphviz::
1724
1725 strict digraph {
1726 graph [rankdir=LR,
1727 splines=polyline
1728 ];
1729 node [label="\N"];
1730 17 [fillcolor="#FF3535",
1731 fixedsize=true,
1732 group=default_alt,
1733 height=2,
1734 label="17: 99f039c5ec9e",
1735 pin=true,
1736 pos="1,17!",
1737 shape=pentagon,
1738 style=filled,
1739 width=2];
1740 }
831 1741
832 $ hg evolve 1742 $ hg evolve
833 move:[15] SPAM SPAM SPAM 1743 move:[15] SPAM SPAM SPAM
834 atop:[12] bathroom stuff 1744 atop:[12] bathroom stuff
835 merging shopping 1745 merging shopping
848 | 1758 |
849 o 9ca060c80d74 (public): SPAM 1759 o 9ca060c80d74 (public): SPAM
850 | 1760 |
851 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1761 o 7e82d3f3c2cb (public): Monthy Python Shopping list
852 1762
1763
1764 $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
1765 .. graphviz::
1766
1767 strict digraph {
1768 graph [rankdir=LR,
1769 splines=polyline
1770 ];
1771 node [label="\N"];
1772 0 [fillcolor="#7F7FFF",
1773 fixedsize=true,
1774 group=default,
1775 height=2,
1776 label="0: 7e82d3f3c2cb",
1777 pin=true,
1778 pos="1,0!",
1779 shape=circle,
1780 style=filled,
1781 width=2];
1782 5 [fillcolor="#7F7FFF",
1783 fixedsize=true,
1784 group=default,
1785 height=2,
1786 label="5: 9ca060c80d74",
1787 pin=true,
1788 pos="1,5!",
1789 shape=circle,
1790 style=filled,
1791 width=2];
1792 0 -> 5;
1793 6 [fillcolor="#7F7FFF",
1794 fixedsize=true,
1795 group=default,
1796 height=2,
1797 label="6: dfd3a2d7691e",
1798 pin=true,
1799 pos="1,6!",
1800 shape=circle,
1801 style=filled,
1802 width=2];
1803 5 -> 6;
1804 7 [fillcolor="#7F7FFF",
1805 fixedsize=true,
1806 group=default,
1807 height=2,
1808 label="7: 41aff6a42b75",
1809 pin=true,
1810 pos="1,7!",
1811 shape=circle,
1812 style=filled,
1813 width=2];
1814 6 -> 7;
1815 11 [fillcolor="#7F7FFF",
1816 fixedsize=true,
1817 group=default,
1818 height=2,
1819 label="11: a224f2a4fb9f",
1820 pin=true,
1821 pos="1,11!",
1822 shape=circle,
1823 style=filled,
1824 width=2];
1825 7 -> 11;
1826 14 [fillcolor="#7F7FFF",
1827 fixedsize=true,
1828 group=default,
1829 height=2,
1830 label="14: a44c85f957d3",
1831 pin=true,
1832 pos="1,14!",
1833 shape=pentagon,
1834 style=filled,
1835 width=2];
1836 11 -> 14;
1837 18 [fillcolor="#7F7FFF",
1838 fixedsize=true,
1839 group=default,
1840 height=2,
1841 label="18: 40aa40daeefb",
1842 pin=true,
1843 pos="1,18!",
1844 shape=pentagon,
1845 style=filled,
1846 width=2];
1847 14 -> 18;
1848 }
1849
853 Handling Divergent amend 1850 Handling Divergent amend
854 ---------------------------------------------- 1851 ----------------------------------------------
855 1852
856 We can detect that multiple diverging amendments have been made. 1853 We can detect that multiple diverging amendments have been made.
857 The `evolve` command can solve this situation. But all corner case are not 1854 The `evolve` command can solve this situation. But all corner case are not