docs/index.rst
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Mon, 26 Mar 2012 18:24:39 +0200
changeset 165 ef6113f3d38e
parent 164 c81d286c4a5b
child 166 8f8a52cd0b9f
permissions -rw-r--r--
title reorganisation

========================================
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

Smart changeset deletion: Obselete Marker
==========================================

for dev and advanced user


.. toctree::
   :maxdepth: 1

   obs-concept
   glossary
   obs-implementation






Know canveas
=================================

Big flashy warning on current remaining issue