The effort is split in two parts:
- * The **obsolete marker** concept aims to provide an alternative to ``strip``
- to get rid of changesets.
+ * The **obsolescence marker** concept aims to provide an alternative to ``strip``
+ to get rid of changesets. This concept have been partially implemented in
* The **evolve** mercurial extension rewrites history using obsolete
-The first and most important step is by far the **obsole
te marker**. However
+The first and most important step is by far the **obsolee marker**. However
most users will never be directly exposed to the concept. For this reason
this manual starts with changeset evolution.
Production ready version should hide such details to normal user.
+The evolve extension require mercurial 2.3
To enable the evolve extension use::
$ hg clone https://bitbucket.org/marmoute/mutable-history -u stable
$ mutable-history/enable.sh >> ~/.hgrc
-You will probably want to use the associated version of hgview (qt viewer
+You will probably want to use hgview_ to visualize obsolescence. Version 1.6.2
- $ hg clone http://hg-lab.logilab.org/wip/hgview/ -u obsolete
- $ python setup.py install --user
+.. _hgview: http://www.logilab.org/project/hgview/
-Works with mercurial 2.2
+(The old version 0.7 of evolve works with mercurial 2.2 but have far less feature)
Here is a list of know issue that will be fixed later:
-* rewriting conflict are not detected yet``hg evolve`` does not
-* ``hg update`` can move an obsolete parent
* you need to provide to `graft --continue -O` if you started you
-* ``hg merge`` considers an extinct head to be a valid target, hence requiring
you to manually specify target all the time.
* trying to exchange obsolete marker with a static http repo will crash.
-* trying to exchange a lot of obsolete markers through http crash.
-* Extinct changesets are turned secret by various commands.
* Extinct changesets are hidden using the *hidden* feature of mercurial only
supported by a few commands.