evolve: extract logic to new method _relocatecommit
This patch introduces a new method _relocatecommit to commit current state
after merge states in relocate method.
This simplifies the code of the method relocate and allows us to modify it later to
support a continued keywork to implement evolve state.
syntax: re
/figures/[^/]+\.png$
^docs/build/
^docs/html/
^html/
\.pyc$
~$
\.swp$
\.orig$
\.rej$
\.err$
^tests/easy_run.sh$
^build/
^MANIFEST$
^docs/tutorials/.*\.rst$
\.ico$