docs/index.rst
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Mon, 26 Mar 2012 18:22:09 +0200
changeset 164 c81d286c4a5b
parent 163 92b073d13f2d
child 165 ef6113f3d38e
permissions -rw-r--r--
improved intro about evolve

========================================
Safe Mutable History
========================================


Here are various Materials on planned improvement to mercurial regarding
rewriting mutable history.

The effort  split in two part:

 * The **obsolete marker** concept aiming to provide and alternative to strip to
   get ride of changesets.

 * A mercurial extension: **evolve** that rewrite using *obsolete marker*
   under the hood.


regarding mercurial internals, the first and most important step is the
**obsolete marker**. However most user will never be directly exposed to the
concept. For this reason document about changeset evolution are put first.


Evolve: A robust alternative to MQ
====================================

Evolve is an experimental history rewriting extensions that use the obsolete
marker. It is inspired from MQ and pbranch but have multiple advantage over
them.

* sticks to "Work where you are" philosophy (I'll need better wording
  for that)

* Handle any kind history. Even history with branch and merge.

* Use robust mercurial's merge mechanism 

  simple conflict are handled by real merge tools using appropriate ancestor.
  Conflict are much rarer and much more user friendly.

* All mutable history available at the same time

  You are do not need to unapply and apply patche to access various part of you
  history.

* Use plain changeset only. Evole create and exchange real changeset only. 
  Mutable history can be used in all usual operation 'pull, push, log, diff …)

* Allow sharing and collaborating mutable history without fear of duplicate.
  (thanks to obsolete marker).

* Cover all mq usage but guard.

.. warning:: The evolve extention and the obsolete marker are at an experimental
            stage. While using obsolet you'll likely be exposed to complexe
            implication of the **obsolete marker** concept. I do not recommend
            non power user to test this at this stage.

            Production ready version should hide such details to normal user.

To enable the evolve extension use::

    $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/mutable-history/
    $ mutable-history/enable.sh > ~/.hgrc


.. toctree::
   :maxdepth: 1

   tutorial
   evolve-faq
   from-mq

A new UI to replace MQ
=================================

for dev and advanced user


.. toctree::
   :maxdepth: 1

   obs-concept
   glossary
   obs-implementation


Big flasshy warning on current remaining issue