move part of the readme about states in states itself.
=============================
Mutable History For Mercurial
=============================
This repository holds three experimental extensions that introduce concepts
related to history rewriting in mercurial.
:states:
Introduce a state concept. It allows to track which changesets have been
made public and immutable and which you want to keep local.
:obsolete:
Introduce an ``obsolete`` concept that tracks new versions of rewritten
changesets.
:rewrite:
A collection of commands to rewrite the mutable part of the history.
**These extensions are experimental and are not meant for production.**
See each extension documentation for details
Obsolete Extension
======================
state: in progress
This extension introduces the *obsolete* concept. It adds a new *obsolete*
relation between two changesets. A relation ``<changeset B> obsolete <changeset
A>`` is set to denote that ``<changeset B>`` is new version of ``<changeset
A>``.
The *obsolete* relation act as a **perpendicular history** to the standard
changeset history. Standard changeset history versions files. The *obsolete*
relation versions changesets.
Usage and Feature
------------------
obsolete changesets are hidden.
Commands
........
a ``debugobsolete`` command has been added.
To Do
-----
* do not exchange them
* handle non-obsolete children
* exchange the obsolete information
* refuse to obsolete published changesets
* handle split
* handle conflict
* handle out of sync
rewrite Extension
======================
state: To be written