tests/test-tutorial.t
branchmercurial-4.2
changeset 3001 67b59d1657cf
parent 2798 2280461343e5
parent 3000 bd7e8be29542
child 3108 9c9c8c1eeb93
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.