comparison tests/test-tutorial.t @ 3001:67b59d1657cf mercurial-4.2

compat-test: merge future 6.7.0 into 4.2 compat branch Couple feature to disable and other various test impact.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 27 Sep 2017 01:07:22 +0200
parents 2280461343e5 bd7e8be29542
children 9c9c8c1eeb93
comparison
equal deleted inserted replaced
2808:f47ed78ab17b 3001:67b59d1657cf
1 1
2 Initial setup 2 Initial setup
3 ------------- 3 -------------
4 4
5 This Mercurial configuration example is used for testing. 5 This Mercurial configuration example is used for testing.
6
6 .. Various setup 7 .. Various setup
7 8
8 $ cat >> $HGRCPATH << EOF 9 $ cat >> $HGRCPATH << EOF
9 > [ui] 10 > [ui]
10 > # This is change the default output of log for clear tutorial 11 > # This is change the default output of log for clear tutorial
62 > evolve = $TESTDIR/../hgext3rd/evolve/ 63 > evolve = $TESTDIR/../hgext3rd/evolve/
63 > # enabling rebase is also needed for now 64 > # enabling rebase is also needed for now
64 > rebase = 65 > rebase =
65 > EOF 66 > EOF
66 67
68 #if docgraph-ext
69 $ . "$TESTDIR/testlib/docgraph_setup.sh" #rest-ignore
70 #endif
71
67 ----------------------- 72 -----------------------
68 Single Developer Usage 73 Single Developer Usage
69 ----------------------- 74 -----------------------
70 75
71 This tutorial shows how to use evolution to rewrite history locally. 76 This tutorial shows how to use evolution to rewrite history locally.
122 | 127 |
123 o 4d5dc8187023 (draft): adding condiment 128 o 4d5dc8187023 (draft): adding condiment
124 | 129 |
125 o 7e82d3f3c2cb (public): Monthy Python Shopping list 130 o 7e82d3f3c2cb (public): Monthy Python Shopping list
126 131
132 #if docgraph-ext
133 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
134 .. graphviz::
135
136 strict digraph {
137 graph [rankdir=LR,
138 splines=polyline
139 ];
140 node [label="\N"];
141 0 [fillcolor="#9999FF",
142 fixedsize=true,
143 group=default,
144 height=0.5,
145 label=0,
146 pin=true,
147 pos="1,0!",
148 shape=circle,
149 style=filled,
150 width=0.5];
151 1 [fillcolor="#9999FF",
152 fixedsize=true,
153 group=default,
154 height=0.5,
155 label=1,
156 pin=true,
157 pos="1,1!",
158 shape=pentagon,
159 style=filled,
160 width=0.5];
161 0 -> 1 [arrowhead=none,
162 penwidth=2.0];
163 2 [fillcolor="#9999FF",
164 fixedsize=true,
165 group=default,
166 height=0.5,
167 label=2,
168 pin=true,
169 pos="1,2!",
170 shape=pentagon,
171 style=filled,
172 width=0.5];
173 1 -> 2 [arrowhead=none,
174 penwidth=2.0];
175 }
176 #endif
127 177
128 But a typo was made in Babanas! 178 But a typo was made in Babanas!
129 179
130 $ hg export tip 180 $ hg export tip
131 # HG changeset patch 181 # HG changeset patch
156 o 4d5dc8187023 (draft): adding condiment 206 o 4d5dc8187023 (draft): adding condiment
157 | 207 |
158 o 7e82d3f3c2cb (public): Monthy Python Shopping list 208 o 7e82d3f3c2cb (public): Monthy Python Shopping list
159 209
160 210
161 hopefully. I can use `hg commit --amend` to rewrite my faulty changeset! 211 #if docgraph-ext
212 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
213 .. graphviz::
214
215 strict digraph {
216 graph [rankdir=LR,
217 splines=polyline
218 ];
219 node [label="\N"];
220 0 [fillcolor="#9999FF",
221 fixedsize=true,
222 group=default,
223 height=0.5,
224 label=0,
225 pin=true,
226 pos="1,0!",
227 shape=circle,
228 style=filled,
229 width=0.5];
230 1 [fillcolor="#9999FF",
231 fixedsize=true,
232 group=default,
233 height=0.5,
234 label=1,
235 pin=true,
236 pos="1,1!",
237 shape=pentagon,
238 style=filled,
239 width=0.5];
240 0 -> 1 [arrowhead=none,
241 penwidth=2.0];
242 2 [fillcolor="#9999FF",
243 fixedsize=true,
244 group=default,
245 height=0.5,
246 label=2,
247 pin=true,
248 pos="1,2!",
249 shape=pentagon,
250 style=filled,
251 width=0.5];
252 1 -> 2 [arrowhead=none,
253 penwidth=2.0];
254 }
255 #endif
256
257 Hopefully. I can use `hg commit --amend` to rewrite my faulty changeset!
162 258
163 $ sed -i'' -e s/Bananos/Banana/ shopping 259 $ sed -i'' -e s/Bananos/Banana/ shopping
164 $ hg diff 260 $ hg diff
165 diff --git a/shopping b/shopping 261 diff --git a/shopping b/shopping
166 --- a/shopping 262 --- a/shopping
182 | 278 |
183 o 4d5dc8187023 (draft): adding condiment 279 o 4d5dc8187023 (draft): adding condiment
184 | 280 |
185 o 7e82d3f3c2cb (public): Monthy Python Shopping list 281 o 7e82d3f3c2cb (public): Monthy Python Shopping list
186 282
283 #if docgraph-ext
284 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
285 .. graphviz::
286
287 strict digraph {
288 graph [rankdir=LR,
289 splines=polyline
290 ];
291 node [label="\N"];
292 0 [fillcolor="#9999FF",
293 fixedsize=true,
294 group=default,
295 height=0.5,
296 label=0,
297 pin=true,
298 pos="1,0!",
299 shape=circle,
300 style=filled,
301 width=0.5];
302 1 [fillcolor="#9999FF",
303 fixedsize=true,
304 group=default,
305 height=0.5,
306 label=1,
307 pin=true,
308 pos="1,1!",
309 shape=pentagon,
310 style=filled,
311 width=0.5];
312 0 -> 1 [arrowhead=none,
313 penwidth=2.0];
314 4 [fillcolor="#9999FF",
315 fixedsize=true,
316 group=default,
317 height=0.5,
318 label=4,
319 pin=true,
320 pos="1,4!",
321 shape=pentagon,
322 style=filled,
323 width=0.5];
324 1 -> 4 [arrowhead=none,
325 penwidth=2.0];
326 }
327 #endif
328
187 $ hg export tip 329 $ hg export tip
188 # HG changeset patch 330 # HG changeset patch
189 # User test 331 # User test
190 # Date 0 0 332 # Date 0 0
191 # Thu Jan 01 00:00:00 1970 +0000 333 # Thu Jan 01 00:00:00 1970 +0000
205 +Apple 347 +Apple
206 348
207 Getting rid of branchy history 349 Getting rid of branchy history
208 ---------------------------------- 350 ----------------------------------
209 351
210 While I was working on my list. someone made a change remotely. 352 While I was working on my list. Someone made a change remotely.
211 353
212 $ cd ../remote 354 $ cd ../remote
213 $ hg up -q 355 $ hg up -q
214 $ sed -i'' -e 's/Spam/Spam Spam Spam/' shopping 356 $ sed -i'' -e 's/Spam/Spam Spam Spam/' shopping
215 $ hg ci -m 'SPAM' 357 $ hg ci -m 'SPAM'
224 adding manifests 366 adding manifests
225 adding file changes 367 adding file changes
226 added 1 changesets with 1 changes to 1 files (+1 heads) 368 added 1 changesets with 1 changes to 1 files (+1 heads)
227 (run 'hg heads' to see heads, 'hg merge' to merge) 369 (run 'hg heads' to see heads, 'hg merge' to merge)
228 370
229 I now have a new heads. Note that this remote head is immutable 371 I now have a new head. Note that this remote head is immutable.
230 372
231 $ hg log -G 373 $ hg log -G
232 o 9ca060c80d74 (public): SPAM 374 o 9ca060c80d74 (public): SPAM
233 | 375 |
234 | @ 9d0363b81950 (draft): adding fruit 376 | @ 9d0363b81950 (draft): adding fruit
236 | o 4d5dc8187023 (draft): adding condiment 378 | o 4d5dc8187023 (draft): adding condiment
237 |/ 379 |/
238 o 7e82d3f3c2cb (public): Monthy Python Shopping list 380 o 7e82d3f3c2cb (public): Monthy Python Shopping list
239 381
240 382
241 instead of merging my head with the new one. I'm going to rebase my work 383 #if docgraph-ext
384 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
385 .. graphviz::
386
387 strict digraph {
388 graph [rankdir=LR,
389 splines=polyline
390 ];
391 node [label="\N"];
392 0 [fillcolor="#9999FF",
393 fixedsize=true,
394 group=default,
395 height=0.5,
396 label=0,
397 pin=true,
398 pos="1,0!",
399 shape=circle,
400 style=filled,
401 width=0.5];
402 1 [fillcolor="#9999FF",
403 fixedsize=true,
404 group=default,
405 height=0.5,
406 label=1,
407 pin=true,
408 pos="1,1!",
409 shape=pentagon,
410 style=filled,
411 width=0.5];
412 0 -> 1 [arrowhead=none,
413 penwidth=2.0];
414 5 [fillcolor="#9999FF",
415 fixedsize=true,
416 group=default,
417 height=0.5,
418 label=5,
419 pin=true,
420 pos="1,5!",
421 shape=circle,
422 style=filled,
423 width=0.5];
424 0 -> 5 [arrowhead=none,
425 penwidth=2.0];
426 4 [fillcolor="#9999FF",
427 fixedsize=true,
428 group=default,
429 height=0.5,
430 label=4,
431 pin=true,
432 pos="1,4!",
433 shape=pentagon,
434 style=filled,
435 width=0.5];
436 1 -> 4 [arrowhead=none,
437 penwidth=2.0];
438 }
439 #endif
440
441 Instead of merging my head with the new one. I'm going to rebase my work
242 442
243 $ hg diff 443 $ hg diff
244 $ hg rebase --dest 9ca060c80d74 --source 4d5dc8187023 444 $ hg rebase --dest 9ca060c80d74 --source 4d5dc8187023
245 rebasing 1:4d5dc8187023 "adding condiment" 445 rebasing 1:4d5dc8187023 "adding condiment"
246 merging shopping 446 merging shopping
257 | 457 |
258 o 9ca060c80d74 (public): SPAM 458 o 9ca060c80d74 (public): SPAM
259 | 459 |
260 o 7e82d3f3c2cb (public): Monthy Python Shopping list 460 o 7e82d3f3c2cb (public): Monthy Python Shopping list
261 461
462 #if docgraph-ext
463 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
464 .. graphviz::
465
466 strict digraph {
467 graph [rankdir=LR,
468 splines=polyline
469 ];
470 node [label="\N"];
471 0 [fillcolor="#9999FF",
472 fixedsize=true,
473 group=default,
474 height=0.5,
475 label=0,
476 pin=true,
477 pos="1,0!",
478 shape=circle,
479 style=filled,
480 width=0.5];
481 5 [fillcolor="#9999FF",
482 fixedsize=true,
483 group=default,
484 height=0.5,
485 label=5,
486 pin=true,
487 pos="1,5!",
488 shape=circle,
489 style=filled,
490 width=0.5];
491 0 -> 5 [arrowhead=none,
492 penwidth=2.0];
493 6 [fillcolor="#9999FF",
494 fixedsize=true,
495 group=default,
496 height=0.5,
497 label=6,
498 pin=true,
499 pos="1,6!",
500 shape=pentagon,
501 style=filled,
502 width=0.5];
503 5 -> 6 [arrowhead=none,
504 penwidth=2.0];
505 7 [fillcolor="#9999FF",
506 fixedsize=true,
507 group=default,
508 height=0.5,
509 label=7,
510 pin=true,
511 pos="1,7!",
512 shape=pentagon,
513 style=filled,
514 width=0.5];
515 6 -> 7 [arrowhead=none,
516 penwidth=2.0];
517 }
518 #endif
262 519
263 Removing changesets 520 Removing changesets
264 ------------------------ 521 ------------------------
265 522
266 I add new item to my list 523 I add new items to my list.
267 524
268 $ cat >> shopping << EOF 525 $ cat >> shopping << EOF
269 > car 526 > car
270 > bus 527 > bus
271 > plane 528 > plane
282 o 9ca060c80d74 (public): SPAM 539 o 9ca060c80d74 (public): SPAM
283 | 540 |
284 o 7e82d3f3c2cb (public): Monthy Python Shopping list 541 o 7e82d3f3c2cb (public): Monthy Python Shopping list
285 542
286 543
287 I have a new commit but I realize that don't want it. (transport shop list does 544 I have a new commit but I realize that don't want it. (Transport shop list does
288 not fit well in my standard shopping list) 545 not fit well in my standard shopping list)
289 546
290 $ hg prune . # "." is for working directory parent 547 $ hg prune . # "." is for working directory parent
291 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 548 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
292 working directory now at 41aff6a42b75 549 working directory now at 41aff6a42b75
301 | 558 |
302 o 9ca060c80d74 (public): SPAM 559 o 9ca060c80d74 (public): SPAM
303 | 560 |
304 o 7e82d3f3c2cb (public): Monthy Python Shopping list 561 o 7e82d3f3c2cb (public): Monthy Python Shopping list
305 562
563
564 #if docgraph-ext
565 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
566 .. graphviz::
567
568 strict digraph {
569 graph [rankdir=LR,
570 splines=polyline
571 ];
572 node [label="\N"];
573 0 [fillcolor="#9999FF",
574 fixedsize=true,
575 group=default,
576 height=0.5,
577 label=0,
578 pin=true,
579 pos="1,0!",
580 shape=circle,
581 style=filled,
582 width=0.5];
583 5 [fillcolor="#9999FF",
584 fixedsize=true,
585 group=default,
586 height=0.5,
587 label=5,
588 pin=true,
589 pos="1,5!",
590 shape=circle,
591 style=filled,
592 width=0.5];
593 0 -> 5 [arrowhead=none,
594 penwidth=2.0];
595 6 [fillcolor="#9999FF",
596 fixedsize=true,
597 group=default,
598 height=0.5,
599 label=6,
600 pin=true,
601 pos="1,6!",
602 shape=pentagon,
603 style=filled,
604 width=0.5];
605 5 -> 6 [arrowhead=none,
606 penwidth=2.0];
607 7 [fillcolor="#9999FF",
608 fixedsize=true,
609 group=default,
610 height=0.5,
611 label=7,
612 pin=true,
613 pos="1,7!",
614 shape=pentagon,
615 style=filled,
616 width=0.5];
617 6 -> 7 [arrowhead=none,
618 penwidth=2.0];
619 }
620 #endif
306 621
307 Reordering changesets 622 Reordering changesets
308 ------------------------ 623 ------------------------
309 624
310 625
363 | 678 |
364 o 9ca060c80d74 (public): SPAM 679 o 9ca060c80d74 (public): SPAM
365 | 680 |
366 o 7e82d3f3c2cb (public): Monthy Python Shopping list 681 o 7e82d3f3c2cb (public): Monthy Python Shopping list
367 682
683
684 #if docgraph-ext
685 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
686 .. graphviz::
687
688 strict digraph {
689 graph [rankdir=LR,
690 splines=polyline
691 ];
692 node [label="\N"];
693 0 [fillcolor="#9999FF",
694 fixedsize=true,
695 group=default,
696 height=0.5,
697 label=0,
698 pin=true,
699 pos="1,0!",
700 shape=circle,
701 style=filled,
702 width=0.5];
703 5 [fillcolor="#9999FF",
704 fixedsize=true,
705 group=default,
706 height=0.5,
707 label=5,
708 pin=true,
709 pos="1,5!",
710 shape=circle,
711 style=filled,
712 width=0.5];
713 0 -> 5 [arrowhead=none,
714 penwidth=2.0];
715 6 [fillcolor="#9999FF",
716 fixedsize=true,
717 group=default,
718 height=0.5,
719 label=6,
720 pin=true,
721 pos="1,6!",
722 shape=pentagon,
723 style=filled,
724 width=0.5];
725 5 -> 6 [arrowhead=none,
726 penwidth=2.0];
727 7 [fillcolor="#9999FF",
728 fixedsize=true,
729 group=default,
730 height=0.5,
731 label=7,
732 pin=true,
733 pos="1,7!",
734 shape=pentagon,
735 style=filled,
736 width=0.5];
737 6 -> 7 [arrowhead=none,
738 penwidth=2.0];
739 9 [fillcolor="#9999FF",
740 fixedsize=true,
741 group=default,
742 height=0.5,
743 label=9,
744 pin=true,
745 pos="1,9!",
746 shape=pentagon,
747 style=filled,
748 width=0.5];
749 7 -> 9 [arrowhead=none,
750 penwidth=2.0];
751 11 [fillcolor="#9999FF",
752 fixedsize=true,
753 group=default,
754 height=0.5,
755 label=11,
756 pin=true,
757 pos="1,11!",
758 shape=pentagon,
759 style=filled,
760 width=0.5];
761 7 -> 11 [arrowhead=none,
762 penwidth=2.0];
763 }
764 #endif
368 765
369 We have a new SPAM SPAM version without the bathroom stuff 766 We have a new SPAM SPAM version without the bathroom stuff
370 767
371 $ grep Spam shopping # enough spam 768 $ grep Spam shopping # enough spam
372 Spam Spam Spam Spam Spam Spam Spam Spam Spam 769 Spam Spam Spam Spam Spam Spam Spam Spam Spam
426 o 9ca060c80d74 (public): SPAM 823 o 9ca060c80d74 (public): SPAM
427 | 824 |
428 o 7e82d3f3c2cb (public): Monthy Python Shopping list 825 o 7e82d3f3c2cb (public): Monthy Python Shopping list
429 826
430 827
431 828 #if docgraph-ext
829 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
830 .. graphviz::
831
832 strict digraph {
833 graph [rankdir=LR,
834 splines=polyline
835 ];
836 node [label="\N"];
837 0 [fillcolor="#9999FF",
838 fixedsize=true,
839 group=default,
840 height=0.5,
841 label=0,
842 pin=true,
843 pos="1,0!",
844 shape=circle,
845 style=filled,
846 width=0.5];
847 5 [fillcolor="#9999FF",
848 fixedsize=true,
849 group=default,
850 height=0.5,
851 label=5,
852 pin=true,
853 pos="1,5!",
854 shape=circle,
855 style=filled,
856 width=0.5];
857 0 -> 5 [arrowhead=none,
858 penwidth=2.0];
859 6 [fillcolor="#9999FF",
860 fixedsize=true,
861 group=default,
862 height=0.5,
863 label=6,
864 pin=true,
865 pos="1,6!",
866 shape=circle,
867 style=filled,
868 width=0.5];
869 5 -> 6 [arrowhead=none,
870 penwidth=2.0];
871 7 [fillcolor="#9999FF",
872 fixedsize=true,
873 group=default,
874 height=0.5,
875 label=7,
876 pin=true,
877 pos="1,7!",
878 shape=circle,
879 style=filled,
880 width=0.5];
881 6 -> 7 [arrowhead=none,
882 penwidth=2.0];
883 11 [fillcolor="#9999FF",
884 fixedsize=true,
885 group=default,
886 height=0.5,
887 label=11,
888 pin=true,
889 pos="1,11!",
890 shape=circle,
891 style=filled,
892 width=0.5];
893 7 -> 11 [arrowhead=none,
894 penwidth=2.0];
895 12 [fillcolor="#9999FF",
896 fixedsize=true,
897 group=default,
898 height=0.5,
899 label=12,
900 pin=true,
901 pos="1,12!",
902 shape=pentagon,
903 style=filled,
904 width=0.5];
905 11 -> 12 [arrowhead=none,
906 penwidth=2.0];
907 }
908 #endif
432 909
433 Splitting change 910 Splitting change
434 ------------------ 911 ------------------
435 912
436 This part is not written yet, but you can use either the `histedit` extension 913 This part is not written yet, but you can use either the `histedit` extension
511 ----------------------- 988 -----------------------
512 Collaboration 989 Collaboration
513 ----------------------- 990 -----------------------
514 991
515 992
516 sharing mutable changesets 993 Sharing mutable changesets
517 ---------------------------- 994 ----------------------------
518 995
519 To share mutable changesets with others, just check that the repo you interact 996 To share mutable changesets with others, just check that the repo you interact
520 with is "not publishing". Otherwise you will get the previously observe 997 with is "not publishing". Otherwise you will get the previously observe
521 behavior where exchanged changeset are automatically published. 998 behavior where exchanged changeset are automatically published.
522 999
523 $ cd ../remote 1000 $ cd ../remote
524 $ hg -R ../local/ showconfig phases 1001 $ hg -R ../local/ showconfig phases
525 [1] 1002 [1]
526 1003
527 the localrepo does not have any specific configuration for `phases.publish`. It 1004 The localrepo does not have any specific configuration for `phases.publish`. It
528 is ``true`` by default. 1005 is ``true`` by default.
529 1006
530 $ hg pull local 1007 $ hg pull local
531 pulling from $TESTTMP/local (glob) 1008 pulling from $TESTTMP/local (glob)
532 searching for changes 1009 searching for changes
548 @ 9ca060c80d74 (public): SPAM 1025 @ 9ca060c80d74 (public): SPAM
549 | 1026 |
550 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1027 o 7e82d3f3c2cb (public): Monthy Python Shopping list
551 1028
552 1029
553
554
555 We do not want to publish the "bathroom changeset". Let's rollback the last transaction. 1030 We do not want to publish the "bathroom changeset". Let's rollback the last transaction.
556 1031
557 .. Warning: Rollback is actually a dangerous kind of internal command that is deprecated and should not be exposed to user. Please forget you read about it until someone fix this tutorial. 1032 .. Warning: Rollback is actually a dangerous kind of internal command that is deprecated and should not be exposed to user. Please forget you read about it until someone fix this tutorial.
558 1033
559 $ hg rollback 1034 $ hg rollback
568 @ 9ca060c80d74 (public): SPAM 1043 @ 9ca060c80d74 (public): SPAM
569 | 1044 |
570 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1045 o 7e82d3f3c2cb (public): Monthy Python Shopping list
571 1046
572 1047
573 Let's make the local repo "non publishing" 1048 Let's make the local repo "non publishing".
574 1049
575 $ echo '[phases]' >> ../local/.hg/hgrc 1050 $ echo '[phases]' >> ../local/.hg/hgrc
576 $ echo 'publish=false' >> ../local/.hg/hgrc 1051 $ echo 'publish=false' >> ../local/.hg/hgrc
577 $ echo '[phases]' >> .hg/hgrc 1052 $ echo '[phases]' >> .hg/hgrc
578 $ echo 'publish=false' >> .hg/hgrc 1053 $ echo 'publish=false' >> .hg/hgrc
639 o 9ca060c80d74 (public): SPAM 1114 o 9ca060c80d74 (public): SPAM
640 | 1115 |
641 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1116 o 7e82d3f3c2cb (public): Monthy Python Shopping list
642 1117
643 1118
1119 #if docgraph-ext
1120 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
1121 .. graphviz::
1122
1123 strict digraph {
1124 graph [rankdir=LR,
1125 splines=polyline
1126 ];
1127 node [label="\N"];
1128 0 [fillcolor="#9999FF",
1129 fixedsize=true,
1130 group=default,
1131 height=0.5,
1132 label=0,
1133 pin=true,
1134 pos="1,0!",
1135 shape=circle,
1136 style=filled,
1137 width=0.5];
1138 5 [fillcolor="#9999FF",
1139 fixedsize=true,
1140 group=default,
1141 height=0.5,
1142 label=5,
1143 pin=true,
1144 pos="1,5!",
1145 shape=circle,
1146 style=filled,
1147 width=0.5];
1148 0 -> 5 [arrowhead=none,
1149 penwidth=2.0];
1150 6 [fillcolor="#9999FF",
1151 fixedsize=true,
1152 group=default,
1153 height=0.5,
1154 label=6,
1155 pin=true,
1156 pos="1,6!",
1157 shape=circle,
1158 style=filled,
1159 width=0.5];
1160 5 -> 6 [arrowhead=none,
1161 penwidth=2.0];
1162 7 [fillcolor="#9999FF",
1163 fixedsize=true,
1164 group=default,
1165 height=0.5,
1166 label=7,
1167 pin=true,
1168 pos="1,7!",
1169 shape=circle,
1170 style=filled,
1171 width=0.5];
1172 6 -> 7 [arrowhead=none,
1173 penwidth=2.0];
1174 11 [fillcolor="#9999FF",
1175 fixedsize=true,
1176 group=default,
1177 height=0.5,
1178 label=11,
1179 pin=true,
1180 pos="1,11!",
1181 shape=circle,
1182 style=filled,
1183 width=0.5];
1184 7 -> 11 [arrowhead=none,
1185 penwidth=2.0];
1186 14 [fillcolor="#9999FF",
1187 fixedsize=true,
1188 group=default,
1189 height=0.5,
1190 label=14,
1191 pin=true,
1192 pos="1,14!",
1193 shape=pentagon,
1194 style=filled,
1195 width=0.5];
1196 11 -> 14 [arrowhead=none,
1197 penwidth=2.0];
1198 }
1199 #endif
644 1200
645 When we pull from remote again we get an unstable state! 1201 When we pull from remote again we get an unstable state!
646 1202
647 $ hg pull remote 1203 $ hg pull remote
648 pulling from $TESTTMP/remote (glob) 1204 pulling from $TESTTMP/remote (glob)
674 o 9ca060c80d74 (public): SPAM 1230 o 9ca060c80d74 (public): SPAM
675 | 1231 |
676 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1232 o 7e82d3f3c2cb (public): Monthy Python Shopping list
677 1233
678 1234
1235 #if docgraph-ext
1236 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
1237 .. graphviz::
1238
1239 strict digraph {
1240 graph [rankdir=LR,
1241 splines=polyline
1242 ];
1243 node [label="\N"];
1244 0 [fillcolor="#9999FF",
1245 fixedsize=true,
1246 group=default,
1247 height=0.5,
1248 label=0,
1249 pin=true,
1250 pos="1,0!",
1251 shape=circle,
1252 style=filled,
1253 width=0.5];
1254 5 [fillcolor="#9999FF",
1255 fixedsize=true,
1256 group=default,
1257 height=0.5,
1258 label=5,
1259 pin=true,
1260 pos="1,5!",
1261 shape=circle,
1262 style=filled,
1263 width=0.5];
1264 0 -> 5 [arrowhead=none,
1265 penwidth=2.0];
1266 6 [fillcolor="#9999FF",
1267 fixedsize=true,
1268 group=default,
1269 height=0.5,
1270 label=6,
1271 pin=true,
1272 pos="1,6!",
1273 shape=circle,
1274 style=filled,
1275 width=0.5];
1276 5 -> 6 [arrowhead=none,
1277 penwidth=2.0];
1278 7 [fillcolor="#9999FF",
1279 fixedsize=true,
1280 group=default,
1281 height=0.5,
1282 label=7,
1283 pin=true,
1284 pos="1,7!",
1285 shape=circle,
1286 style=filled,
1287 width=0.5];
1288 6 -> 7 [arrowhead=none,
1289 penwidth=2.0];
1290 11 [fillcolor="#9999FF",
1291 fixedsize=true,
1292 group=default,
1293 height=0.5,
1294 label=11,
1295 pin=true,
1296 pos="1,11!",
1297 shape=circle,
1298 style=filled,
1299 width=0.5];
1300 7 -> 11 [arrowhead=none,
1301 penwidth=2.0];
1302 12 [fillcolor="#DFDFFF",
1303 fixedsize=true,
1304 group=default_alt,
1305 height=0.5,
1306 label=12,
1307 pin=true,
1308 pos="2,12!",
1309 shape=pentagon,
1310 style="dotted, filled",
1311 width=0.5];
1312 11 -> 12 [arrowhead=none,
1313 penwidth=2.0];
1314 14 [fillcolor="#9999FF",
1315 fixedsize=true,
1316 group=default,
1317 height=0.5,
1318 label=14,
1319 pin=true,
1320 pos="1,14!",
1321 shape=pentagon,
1322 style=filled,
1323 width=0.5];
1324 11 -> 14 [arrowhead=none,
1325 penwidth=2.0];
1326 12 -> 14 [arrowhead=none,
1327 minlen=0,
1328 penwidth=2.0,
1329 style=dashed];
1330 15 [fillcolor="#FF4F4F",
1331 fixedsize=true,
1332 group=default_alt,
1333 height=0.5,
1334 label=15,
1335 pin=true,
1336 pos="2,15!",
1337 shape=pentagon,
1338 style=filled,
1339 width=0.5];
1340 12 -> 15 [arrowhead=none,
1341 penwidth=2.0];
1342 }
1343 #endif
1344
679 The older version 75954b8cd933 never ceased to exist in the local repo. It was 1345 The older version 75954b8cd933 never ceased to exist in the local repo. It was
680 just hidden and excluded from pull and push. 1346 just hidden and excluded from pull and push.
681 1347
682 .. 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``. 1348 .. 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``.
683 1349
690 abort: push includes unstable changeset: bf1b0d202029! 1356 abort: push includes unstable changeset: bf1b0d202029!
691 (use 'hg evolve' to get a stable history or --force to ignore warnings) 1357 (use 'hg evolve' to get a stable history or --force to ignore warnings)
692 [255] 1358 [255]
693 1359
694 1360
695
696
697 To resolve this unstable state, you need to rebase bf1b0d202029 onto 1361 To resolve this unstable state, you need to rebase bf1b0d202029 onto
698 a44c85f957d3. The `hg evolve` command will do this for you. 1362 a44c85f957d3. The `hg evolve` command will do this for you.
699 1363
700 It has a --dry-run option to only suggest the next move. 1364 It has a --dry-run option to only suggest the next move.
701 1365
728 o 9ca060c80d74 (public): SPAM 1392 o 9ca060c80d74 (public): SPAM
729 | 1393 |
730 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1394 o 7e82d3f3c2cb (public): Monthy Python Shopping list
731 1395
732 1396
733 1397 #if docgraph-ext
734 We can push this evolution to remote 1398 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
1399 .. graphviz::
1400
1401 strict digraph {
1402 graph [rankdir=LR,
1403 splines=polyline
1404 ];
1405 node [label="\N"];
1406 0 [fillcolor="#9999FF",
1407 fixedsize=true,
1408 group=default,
1409 height=0.5,
1410 label=0,
1411 pin=true,
1412 pos="1,0!",
1413 shape=circle,
1414 style=filled,
1415 width=0.5];
1416 5 [fillcolor="#9999FF",
1417 fixedsize=true,
1418 group=default,
1419 height=0.5,
1420 label=5,
1421 pin=true,
1422 pos="1,5!",
1423 shape=circle,
1424 style=filled,
1425 width=0.5];
1426 0 -> 5 [arrowhead=none,
1427 penwidth=2.0];
1428 6 [fillcolor="#9999FF",
1429 fixedsize=true,
1430 group=default,
1431 height=0.5,
1432 label=6,
1433 pin=true,
1434 pos="1,6!",
1435 shape=circle,
1436 style=filled,
1437 width=0.5];
1438 5 -> 6 [arrowhead=none,
1439 penwidth=2.0];
1440 7 [fillcolor="#9999FF",
1441 fixedsize=true,
1442 group=default,
1443 height=0.5,
1444 label=7,
1445 pin=true,
1446 pos="1,7!",
1447 shape=circle,
1448 style=filled,
1449 width=0.5];
1450 6 -> 7 [arrowhead=none,
1451 penwidth=2.0];
1452 11 [fillcolor="#9999FF",
1453 fixedsize=true,
1454 group=default,
1455 height=0.5,
1456 label=11,
1457 pin=true,
1458 pos="1,11!",
1459 shape=circle,
1460 style=filled,
1461 width=0.5];
1462 7 -> 11 [arrowhead=none,
1463 penwidth=2.0];
1464 14 [fillcolor="#9999FF",
1465 fixedsize=true,
1466 group=default,
1467 height=0.5,
1468 label=14,
1469 pin=true,
1470 pos="1,14!",
1471 shape=pentagon,
1472 style=filled,
1473 width=0.5];
1474 11 -> 14 [arrowhead=none,
1475 penwidth=2.0];
1476 16 [fillcolor="#9999FF",
1477 fixedsize=true,
1478 group=default,
1479 height=0.5,
1480 label=16,
1481 pin=true,
1482 pos="1,16!",
1483 shape=pentagon,
1484 style=filled,
1485 width=0.5];
1486 14 -> 16 [arrowhead=none,
1487 penwidth=2.0];
1488 }
1489 #endif
1490
1491 We can push this evolution to remote.
735 1492
736 $ hg push remote 1493 $ hg push remote
737 pushing to $TESTTMP/remote (glob) 1494 pushing to $TESTTMP/remote (glob)
738 searching for changes 1495 searching for changes
739 adding changesets 1496 adding changesets
740 adding manifests 1497 adding manifests
741 adding file changes 1498 adding file changes
742 added 2 changesets with 2 changes to 1 files (+1 heads) 1499 added 2 changesets with 2 changes to 1 files (+1 heads)
743 3 new obsolescence markers 1500 3 new obsolescence markers
744 1501
745 remote get a warning that current working directory is based on an obsolete changeset 1502 Remote get a warning that current working directory is based on an obsolete
1503 changeset.
746 1504
747 $ cd ../remote 1505 $ cd ../remote
748 $ hg pull local # we up again to trigger the warning. it was displayed during the push 1506 $ hg pull local # we up again to trigger the warning. it was displayed during the push
749 pulling from $TESTTMP/local (glob) 1507 pulling from $TESTTMP/local (glob)
750 searching for changes 1508 searching for changes
751 no changes found 1509 no changes found
752 working directory parent is obsolete! (bf1b0d202029) 1510 working directory parent is obsolete! (bf1b0d202029)
753 (use 'hg evolve' to update to its successor: ee942144f952) 1511 (use 'hg evolve' to update to its successor: ee942144f952)
754 1512
755 now let's see where we are, and update to the successor 1513 Now let's see where we are, and update to the successor.
756 1514
757 $ hg parents 1515 $ hg parents
758 bf1b0d202029 (draft): animals 1516 bf1b0d202029 (draft): animals
759 working directory parent is obsolete! (bf1b0d202029) 1517 working directory parent is obsolete! (bf1b0d202029)
760 (use 'hg evolve' to update to its successor: ee942144f952) 1518 (use 'hg evolve' to update to its successor: ee942144f952)
764 working directory is now at ee942144f952 1522 working directory is now at ee942144f952
765 1523
766 Relocating unstable change after prune 1524 Relocating unstable change after prune
767 ---------------------------------------------- 1525 ----------------------------------------------
768 1526
769 The remote guy keep working 1527 The remote guy keeps working.
770 1528
771 $ sed -i'' -e 's/Spam/Spam Spam Spam Spam/g' shopping 1529 $ sed -i'' -e 's/Spam/Spam Spam Spam Spam/g' shopping
772 $ hg commit -m "SPAM SPAM SPAM" 1530 $ hg commit -m "SPAM SPAM SPAM"
773 1531
774 I'm pulling its work locally. 1532 I'm pulling its work locally.
798 o 9ca060c80d74 (public): SPAM 1556 o 9ca060c80d74 (public): SPAM
799 | 1557 |
800 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1558 o 7e82d3f3c2cb (public): Monthy Python Shopping list
801 1559
802 1560
1561 #if docgraph-ext
1562 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
1563 .. graphviz::
1564
1565 strict digraph {
1566 graph [rankdir=LR,
1567 splines=polyline
1568 ];
1569 node [label="\N"];
1570 0 [fillcolor="#9999FF",
1571 fixedsize=true,
1572 group=default,
1573 height=0.5,
1574 label=0,
1575 pin=true,
1576 pos="1,0!",
1577 shape=circle,
1578 style=filled,
1579 width=0.5];
1580 5 [fillcolor="#9999FF",
1581 fixedsize=true,
1582 group=default,
1583 height=0.5,
1584 label=5,
1585 pin=true,
1586 pos="1,5!",
1587 shape=circle,
1588 style=filled,
1589 width=0.5];
1590 0 -> 5 [arrowhead=none,
1591 penwidth=2.0];
1592 6 [fillcolor="#9999FF",
1593 fixedsize=true,
1594 group=default,
1595 height=0.5,
1596 label=6,
1597 pin=true,
1598 pos="1,6!",
1599 shape=circle,
1600 style=filled,
1601 width=0.5];
1602 5 -> 6 [arrowhead=none,
1603 penwidth=2.0];
1604 7 [fillcolor="#9999FF",
1605 fixedsize=true,
1606 group=default,
1607 height=0.5,
1608 label=7,
1609 pin=true,
1610 pos="1,7!",
1611 shape=circle,
1612 style=filled,
1613 width=0.5];
1614 6 -> 7 [arrowhead=none,
1615 penwidth=2.0];
1616 11 [fillcolor="#9999FF",
1617 fixedsize=true,
1618 group=default,
1619 height=0.5,
1620 label=11,
1621 pin=true,
1622 pos="1,11!",
1623 shape=circle,
1624 style=filled,
1625 width=0.5];
1626 7 -> 11 [arrowhead=none,
1627 penwidth=2.0];
1628 14 [fillcolor="#9999FF",
1629 fixedsize=true,
1630 group=default,
1631 height=0.5,
1632 label=14,
1633 pin=true,
1634 pos="1,14!",
1635 shape=pentagon,
1636 style=filled,
1637 width=0.5];
1638 11 -> 14 [arrowhead=none,
1639 penwidth=2.0];
1640 16 [fillcolor="#9999FF",
1641 fixedsize=true,
1642 group=default,
1643 height=0.5,
1644 label=16,
1645 pin=true,
1646 pos="1,16!",
1647 shape=pentagon,
1648 style=filled,
1649 width=0.5];
1650 14 -> 16 [arrowhead=none,
1651 penwidth=2.0];
1652 17 [fillcolor="#9999FF",
1653 fixedsize=true,
1654 group=default,
1655 height=0.5,
1656 label=17,
1657 pin=true,
1658 pos="1,17!",
1659 shape=pentagon,
1660 style=filled,
1661 width=0.5];
1662 16 -> 17 [arrowhead=none,
1663 penwidth=2.0];
1664 }
1665 #endif
1666
803 In the mean time I noticed you can't buy animals in a super market and I prune the animal changeset: 1667 In the mean time I noticed you can't buy animals in a super market and I prune the animal changeset:
804 1668
805 $ hg prune ee942144f952 1669 $ hg prune ee942144f952
806 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 1670 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
807 working directory now at a44c85f957d3 1671 working directory now at a44c85f957d3
808 1 changesets pruned 1672 1 changesets pruned
809 1 new unstable changesets 1673 1 new unstable changesets
810 1674
811 1675
812 The animals changeset is still displayed because the "SPAM SPAM SPAM" changeset 1676 The animals changeset is still displayed because the "SPAM SPAM SPAM" changeset
813 is neither dead or obsolete. My repository is in an unstable state again. 1677 is neither dead or obsolete. My repository is in an unstable state again.
814 1678
815 $ hg log -G 1679 $ hg log -G
816 o 99f039c5ec9e (draft): SPAM SPAM SPAM 1680 o 99f039c5ec9e (draft): SPAM SPAM SPAM
817 | 1681 |
818 x ee942144f952 (draft): animals 1682 x ee942144f952 (draft): animals
828 o 9ca060c80d74 (public): SPAM 1692 o 9ca060c80d74 (public): SPAM
829 | 1693 |
830 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1694 o 7e82d3f3c2cb (public): Monthy Python Shopping list
831 1695
832 1696
833 $ hg log -r 'unstable()' 1697 #if docgraph-ext
1698 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
1699 .. graphviz::
1700
1701 strict digraph {
1702 graph [rankdir=LR,
1703 splines=polyline
1704 ];
1705 node [label="\N"];
1706 0 [fillcolor="#9999FF",
1707 fixedsize=true,
1708 group=default,
1709 height=0.5,
1710 label=0,
1711 pin=true,
1712 pos="1,0!",
1713 shape=circle,
1714 style=filled,
1715 width=0.5];
1716 5 [fillcolor="#9999FF",
1717 fixedsize=true,
1718 group=default,
1719 height=0.5,
1720 label=5,
1721 pin=true,
1722 pos="1,5!",
1723 shape=circle,
1724 style=filled,
1725 width=0.5];
1726 0 -> 5 [arrowhead=none,
1727 penwidth=2.0];
1728 6 [fillcolor="#9999FF",
1729 fixedsize=true,
1730 group=default,
1731 height=0.5,
1732 label=6,
1733 pin=true,
1734 pos="1,6!",
1735 shape=circle,
1736 style=filled,
1737 width=0.5];
1738 5 -> 6 [arrowhead=none,
1739 penwidth=2.0];
1740 7 [fillcolor="#9999FF",
1741 fixedsize=true,
1742 group=default,
1743 height=0.5,
1744 label=7,
1745 pin=true,
1746 pos="1,7!",
1747 shape=circle,
1748 style=filled,
1749 width=0.5];
1750 6 -> 7 [arrowhead=none,
1751 penwidth=2.0];
1752 11 [fillcolor="#9999FF",
1753 fixedsize=true,
1754 group=default,
1755 height=0.5,
1756 label=11,
1757 pin=true,
1758 pos="1,11!",
1759 shape=circle,
1760 style=filled,
1761 width=0.5];
1762 7 -> 11 [arrowhead=none,
1763 penwidth=2.0];
1764 14 [fillcolor="#9999FF",
1765 fixedsize=true,
1766 group=default,
1767 height=0.5,
1768 label=14,
1769 pin=true,
1770 pos="1,14!",
1771 shape=pentagon,
1772 style=filled,
1773 width=0.5];
1774 11 -> 14 [arrowhead=none,
1775 penwidth=2.0];
1776 16 [fillcolor="#DFDFFF",
1777 fixedsize=true,
1778 group=default_alt,
1779 height=0.5,
1780 label=16,
1781 pin=true,
1782 pos="2,16!",
1783 shape=pentagon,
1784 style="dotted, filled",
1785 width=0.5];
1786 14 -> 16 [arrowhead=none,
1787 penwidth=2.0];
1788 17 [fillcolor="#FF4F4F",
1789 fixedsize=true,
1790 group=default_alt,
1791 height=0.5,
1792 label=17,
1793 pin=true,
1794 pos="2,17!",
1795 shape=pentagon,
1796 style=filled,
1797 width=0.5];
1798 16 -> 17 [arrowhead=none,
1799 penwidth=2.0];
1800 }
1801 #endif
1802
1803 $ hg log -r "unstable()"
834 99f039c5ec9e (draft): SPAM SPAM SPAM 1804 99f039c5ec9e (draft): SPAM SPAM SPAM
1805
1806 #if docgraph-ext
1807 $ hg docgraph -r "unstable()" --sphinx-directive --rankdir LR #rest-ignore
1808 .. graphviz::
1809
1810 strict digraph {
1811 graph [rankdir=LR,
1812 splines=polyline
1813 ];
1814 node [label="\N"];
1815 17 [fillcolor="#FF4F4F",
1816 fixedsize=true,
1817 group=default_alt,
1818 height=0.5,
1819 label=17,
1820 pin=true,
1821 pos="1,17!",
1822 shape=pentagon,
1823 style=filled,
1824 width=0.5];
1825 }
1826 #endif
835 1827
836 $ hg evolve 1828 $ hg evolve
837 move:[17] SPAM SPAM SPAM 1829 move:[17] SPAM SPAM SPAM
838 atop:[14] bathroom stuff 1830 atop:[14] bathroom stuff
839 merging shopping 1831 merging shopping
853 o 9ca060c80d74 (public): SPAM 1845 o 9ca060c80d74 (public): SPAM
854 | 1846 |
855 o 7e82d3f3c2cb (public): Monthy Python Shopping list 1847 o 7e82d3f3c2cb (public): Monthy Python Shopping list
856 1848
857 1849
1850 #if docgraph-ext
1851 $ hg docgraph -r "all()" --sphinx-directive --rankdir LR #rest-ignore
1852 .. graphviz::
1853
1854 strict digraph {
1855 graph [rankdir=LR,
1856 splines=polyline
1857 ];
1858 node [label="\N"];
1859 0 [fillcolor="#9999FF",
1860 fixedsize=true,
1861 group=default,
1862 height=0.5,
1863 label=0,
1864 pin=true,
1865 pos="1,0!",
1866 shape=circle,
1867 style=filled,
1868 width=0.5];
1869 5 [fillcolor="#9999FF",
1870 fixedsize=true,
1871 group=default,
1872 height=0.5,
1873 label=5,
1874 pin=true,
1875 pos="1,5!",
1876 shape=circle,
1877 style=filled,
1878 width=0.5];
1879 0 -> 5 [arrowhead=none,
1880 penwidth=2.0];
1881 6 [fillcolor="#9999FF",
1882 fixedsize=true,
1883 group=default,
1884 height=0.5,
1885 label=6,
1886 pin=true,
1887 pos="1,6!",
1888 shape=circle,
1889 style=filled,
1890 width=0.5];
1891 5 -> 6 [arrowhead=none,
1892 penwidth=2.0];
1893 7 [fillcolor="#9999FF",
1894 fixedsize=true,
1895 group=default,
1896 height=0.5,
1897 label=7,
1898 pin=true,
1899 pos="1,7!",
1900 shape=circle,
1901 style=filled,
1902 width=0.5];
1903 6 -> 7 [arrowhead=none,
1904 penwidth=2.0];
1905 11 [fillcolor="#9999FF",
1906 fixedsize=true,
1907 group=default,
1908 height=0.5,
1909 label=11,
1910 pin=true,
1911 pos="1,11!",
1912 shape=circle,
1913 style=filled,
1914 width=0.5];
1915 7 -> 11 [arrowhead=none,
1916 penwidth=2.0];
1917 14 [fillcolor="#9999FF",
1918 fixedsize=true,
1919 group=default,
1920 height=0.5,
1921 label=14,
1922 pin=true,
1923 pos="1,14!",
1924 shape=pentagon,
1925 style=filled,
1926 width=0.5];
1927 11 -> 14 [arrowhead=none,
1928 penwidth=2.0];
1929 18 [fillcolor="#9999FF",
1930 fixedsize=true,
1931 group=default,
1932 height=0.5,
1933 label=18,
1934 pin=true,
1935 pos="1,18!",
1936 shape=pentagon,
1937 style=filled,
1938 width=0.5];
1939 14 -> 18 [arrowhead=none,
1940 penwidth=2.0];
1941 }
1942 #endif
858 1943
859 Handling Divergent amend 1944 Handling Divergent amend
860 ---------------------------------------------- 1945 ----------------------------------------------
861 1946
862 We can detect that multiple diverging amendments have been made. 1947 We can detect that multiple diverging amendments have been made.