evolve: refactor the code which swap two nodes (in divergence resolution)
I see that we are using the code to swap the "divergent" and "other" node;
and updating the evolvestate accordingly at many places in divergence
resolution. This patch extract that code to a function.
Although I don't have strong opinion on this patch. It's a volunteered
patch to remove some redundancy.
Doc is generated with sphinx.
You can generate the doc with:
```
make
```
# Tutorials
For updating the tutorials, you need to have the docgraph extension installed
(https://pypi.python.org/pypi/hg-docgraph).
Then run the test-topic-tutorial.t and test-tutorial.t to update the output if
needed.
You'll need the dot binary (likely installed by the graphviz package in your
package manager) in order to have graphviz graphs rendered in the html output.
Simply run make in the docs directory should takes care of the conversion of
the tutorial .t files into .rst files. Then sphinx should do the rest of the
jobs by rendering graphviz graphs.