Mercurial > evolve
diff docs/index.rst @ 2872:78debdfb3e4d
doc: simplify the reference to in-core features
This should do the whole thing lighter.
author | Philippe Pepiot <phil@philpep.org> |
---|---|
date | Tue, 29 Aug 2017 16:15:02 +0200 |
parents | c6289ec369cb |
children | 2c4171a53475 |
line wrap: on
line diff
--- a/docs/index.rst Tue Aug 29 16:14:28 2017 +0200 +++ b/docs/index.rst Tue Aug 29 16:15:02 2017 +0200 @@ -20,33 +20,21 @@ commit new changesets to modify your source code, but you cannot modify or remove old changesets. -For years, Mercurial has included various extensions that allow -history modification: ``rebase``, ``mq``, ``histedit``, and so forth. -These are useful and popular extensions, and in fact history -modification is one of the big reasons DVCSes (distributed version -control systems) like Mercurial took off. - +For years, Mercurial has included various commands that allow +history modification: ``rebase``, ``histedit``, ``commit --amend`` and so forth. But there's a catch: until now, Mercurial's various mechanisms for modifying history have been *unsafe*, in that changesets were destroyed (“stripped”) rather than simply made hidden. -``evolve`` makes things better in a couple of ways: +``evolve`` makes things better by changing the behaviour of most existing +history modification commands so they use a safer mechanism (*changeset +obsolescence*, covered below) rather than the older, less safe *strip* +operation. - * It changes the behaviour of most existing history modification - extensions (``rebase``, ``histedit``, etc.) so they use a safer - mechanism (*changeset obsolescence*, covered below) rather than - the older, less safe *strip* operation. - - * It provides a new way of modifying history that is roughly - equivalent to ``mq`` (but much nicer and safer). - -It helps to understand that ``evolve`` builds on infrastructure -already in core Mercurial: +``evolve`` is built on infrastructure in core Mercurial: * *Phases* (starting in Mercurial 2.1) allow you to distinguish - mutable and immutable changesets. We'll cover phases early in the - user guide, since understanding phases is essential to - understanding ``evolve``. + mutable and immutable changesets. * *Changeset obsolescence* (starting in Mercurial 2.3) is how Mercurial knows how history has been modified, specifically when @@ -54,8 +42,7 @@ changeset is neither removed nor modified, but is instead marked *obsolete* and typically replaced by a *successor*. Obsolete changesets usually become *hidden* as well. Obsolescence is an - invisible feature until you start using ``evolve``, so we'll cover - it in the user guide too. + invisible feature in Mercurial until you start using ``evolve``. Some of the things you can do with ``evolve`` are: