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

doc: integrate graphviz graphs in tutorials Use the mercurial-graphviz extension (https://bitbucket.org/octobus/mercurial_graphviz) in tutorials in order to have some dot graphs in the tutorials .t files. In order to run the tests, export the GRAPHVIZ_EXTENSION variable which points to your copy of the extension. Please be aware that pygraphviz should be installed in your environment. That should be sufficient for generating dot graphs in text format. Then generate the doc as usual, the sphinx-graphviz extension (http://www .sphinx-doc.org/en/stable/ext/graphviz.html) has been added and it should handle the generation of the graphs. Please be aware that you need the dot binary installed in your system. Please refer to the extension documentation for more configuration.
author Boris Feld <boris.feld@octobus.net>
date Tue, 29 Aug 2017 16:42:40 +0200
parents 06844693bb21
children 2ddc63d13af8
line wrap: on
line diff
--- a/tests/test-tutorial.t	Tue Sep 19 12:52:22 2017 +0200
+++ b/tests/test-tutorial.t	Tue Aug 29 16:42:40 2017 +0200
@@ -65,6 +65,8 @@
   > rebase =
   > EOF
 
+  $ . "$TESTDIR/testlib/graphviz_setup.sh" #ignore
+
 -----------------------
 Single Developer Usage
 -----------------------
@@ -125,6 +127,47 @@
   |
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	1	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="1: 4d5dc8187023",
+      		pin=true,
+      		pos="1,1!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	0 -> 1;
+      	2	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="2: d85de4546133",
+      		pin=true,
+      		pos="1,2!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	1 -> 2;
+      }
 
 But a typo was made in Babanas!
 
@@ -159,6 +202,48 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	1	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="1: 4d5dc8187023",
+      		pin=true,
+      		pos="1,1!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	0 -> 1;
+      	2	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="2: d85de4546133",
+      		pin=true,
+      		pos="1,2!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	1 -> 2;
+      }
+
 Hopefully. I can use `hg commit --amend` to rewrite my faulty changeset!
 
   $ sed -i'' -e s/Bananos/Banana/ shopping
@@ -185,6 +270,48 @@
   |
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	1	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="1: 4d5dc8187023",
+      		pin=true,
+      		pos="1,1!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	0 -> 1;
+      	4	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="4: 9d0363b81950",
+      		pin=true,
+      		pos="1,4!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	1 -> 4;
+      }
+
   $ hg export tip
   # HG changeset patch
   # User test
@@ -239,6 +366,59 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	1	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="1: 4d5dc8187023",
+      		pin=true,
+      		pos="1,1!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	0 -> 1;
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	4	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="4: 9d0363b81950",
+      		pin=true,
+      		pos="1,4!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	1 -> 4;
+      }
+
 Instead of merging my head with the new one. I'm going to rebase my work
 
   $ hg diff
@@ -260,6 +440,58 @@
   |
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      }
 
 Removing changesets
 ------------------------
@@ -305,6 +537,59 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      }
+
 Reordering changesets
 ------------------------
 
@@ -367,6 +652,81 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      	9	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="9: 10b8aeaa8cc8",
+      		pin=true,
+      		pos="1,9!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	7 -> 9;
+      	11	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="11: a224f2a4fb9f",
+      		pin=true,
+      		pos="1,11!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	7 -> 11;
+      }
+
 We have a new SPAM SPAM version without the bathroom stuff
 
   $ grep Spam shopping  # enough spam
@@ -429,7 +789,80 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
-
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      	11	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="11: a224f2a4fb9f",
+      		pin=true,
+      		pos="1,11!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	7 -> 11;
+      	12	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="12: 75954b8cd933",
+      		pin=true,
+      		pos="1,12!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	11 -> 12;
+      }
 
 Splitting change
 ------------------
@@ -640,6 +1073,81 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      	11	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="11: a224f2a4fb9f",
+      		pin=true,
+      		pos="1,11!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	7 -> 11;
+      	14	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="14: a44c85f957d3",
+      		pin=true,
+      		pos="1,14!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	11 -> 14;
+      }
+
 When we pull from remote again we get an unstable state!
 
   $ hg pull remote
@@ -674,6 +1182,107 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      	11	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="11: a224f2a4fb9f",
+      		pin=true,
+      		pos="1,11!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	7 -> 11;
+      	12	 [fillcolor="#DFDFFF",
+      		fixedsize=true,
+      		group=default_alt,
+      		height=2,
+      		label="12: 75954b8cd933",
+      		pin=true,
+      		pos="2,12!",
+      		shape=pentagon,
+      		style="dotted, filled",
+      		width=2];
+      	11 -> 12;
+      	14	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="14: a44c85f957d3",
+      		pin=true,
+      		pos="1,14!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	11 -> 14;
+      	12 -> 14	 [arrowtail=dot,
+      		dir=back,
+      		minlen=0,
+      		style=dotted];
+      	15	 [fillcolor="#FF3535",
+      		fixedsize=true,
+      		group=default_alt,
+      		height=2,
+      		label="15: bf1b0d202029",
+      		pin=true,
+      		pos="2,15!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	12 -> 15;
+      }
+
 The older version 75954b8cd933 never ceased to exist in the local repo. It was
 just hidden and excluded from pull and push.
 
@@ -726,6 +1335,92 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      	11	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="11: a224f2a4fb9f",
+      		pin=true,
+      		pos="1,11!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	7 -> 11;
+      	14	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="14: a44c85f957d3",
+      		pin=true,
+      		pos="1,14!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	11 -> 14;
+      	16	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="16: ee942144f952",
+      		pin=true,
+      		pos="1,16!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	14 -> 16;
+      }
+
 We can push this evolution to remote.
 
   $ hg push remote
@@ -797,6 +1492,103 @@
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
 
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      	11	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="11: a224f2a4fb9f",
+      		pin=true,
+      		pos="1,11!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	7 -> 11;
+      	14	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="14: a44c85f957d3",
+      		pin=true,
+      		pos="1,14!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	11 -> 14;
+      	16	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="16: ee942144f952",
+      		pin=true,
+      		pos="1,16!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	14 -> 16;
+      	17	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="17: 99f039c5ec9e",
+      		pin=true,
+      		pos="1,17!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	16 -> 17;
+      }
+
 In the mean time I noticed you can't buy animals in a super market and I prune the animal changeset:
 
   $ hg prune ee942144f952
@@ -826,9 +1618,127 @@
   |
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
+
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      	11	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="11: a224f2a4fb9f",
+      		pin=true,
+      		pos="1,11!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	7 -> 11;
+      	14	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="14: a44c85f957d3",
+      		pin=true,
+      		pos="1,14!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	11 -> 14;
+      	16	 [fillcolor="#DFDFFF",
+      		fixedsize=true,
+      		group=default_alt,
+      		height=2,
+      		label="16: ee942144f952",
+      		pin=true,
+      		pos="2,16!",
+      		shape=pentagon,
+      		style="dotted, filled",
+      		width=2];
+      	14 -> 16;
+      	17	 [fillcolor="#FF3535",
+      		fixedsize=true,
+      		group=default_alt,
+      		height=2,
+      		label="17: 99f039c5ec9e",
+      		pin=true,
+      		pos="2,17!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	16 -> 17;
+      }
+
   $ hg log -r "orphan()"
   99f039c5ec9e (draft): SPAM SPAM SPAM
 
+  $ hg graphviz -r "orphan()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	17	 [fillcolor="#FF3535",
+      		fixedsize=true,
+      		group=default_alt,
+      		height=2,
+      		label="17: 99f039c5ec9e",
+      		pin=true,
+      		pos="1,17!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      }
+
   $ hg evolve
   move:[15] SPAM SPAM SPAM
   atop:[12] bathroom stuff
@@ -850,6 +1760,93 @@
   |
   o  7e82d3f3c2cb (public): Monthy Python Shopping list
   
+
+  $ hg graphviz -r "all()" --sphinx-directive --rankdir LR #ignore
+  .. graphviz::
+  
+      strict digraph  {
+      	graph [rankdir=LR,
+      		splines=polyline
+      	];
+      	node [label="\N"];
+      	0	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="0: 7e82d3f3c2cb",
+      		pin=true,
+      		pos="1,0!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="5: 9ca060c80d74",
+      		pin=true,
+      		pos="1,5!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	0 -> 5;
+      	6	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="6: dfd3a2d7691e",
+      		pin=true,
+      		pos="1,6!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	5 -> 6;
+      	7	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="7: 41aff6a42b75",
+      		pin=true,
+      		pos="1,7!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	6 -> 7;
+      	11	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="11: a224f2a4fb9f",
+      		pin=true,
+      		pos="1,11!",
+      		shape=circle,
+      		style=filled,
+      		width=2];
+      	7 -> 11;
+      	14	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="14: a44c85f957d3",
+      		pin=true,
+      		pos="1,14!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	11 -> 14;
+      	18	 [fillcolor="#7F7FFF",
+      		fixedsize=true,
+      		group=default,
+      		height=2,
+      		label="18: 40aa40daeefb",
+      		pin=true,
+      		pos="1,18!",
+      		shape=pentagon,
+      		style=filled,
+      		width=2];
+      	14 -> 18;
+      }
+
 Handling Divergent amend
 ----------------------------------------------