README
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Thu, 23 Aug 2012 12:51:06 +0200
changeset 482 d2531a747ff5
parent 479 b63da0fb8ee5
child 483 b12ff7ef35b1
permissions -rw-r--r--
evolve: fold command First crude version of a fold command

=============================
Mutable History For Mercurial
=============================

:obsolete:

    Introduce an ``obsolete`` concept that tracks new versions of rewritten
    changesets.

:evolve:

    A collection of commands to rewrite the mutable part of the history.



**These extensions are experimental and are not meant for production.**

You can quicky enable them using::

    ./enable.sh >> ~/.hgrc

But it's recommended to look at the doc in the first place.

See doc/ directory for details.

Online version of the doc is available:

    http://hg-lab.logilab.org/doc/mutable-history/html/

Contribute
==================

The simplest way to contribute is to issue a pull request on bitbucket.

However, some cutting edge change may be found in a mutable repository hosted
by logilab before they are published.

    http://hg-lab.logilab.org/wip/mutable-history/

Make sure to check lastest draft changeset before submitting new changeset.


Changelog
==================

1.0

- Align with Mercurial version 2.3 (drop 2.2 support).
- stabilize handle killed parent
- stabilize handle late comer
- stabilize get a --continue switch
- merge and update ignore extinct changeset in most case.
- new "troubled()" revset
- summary now reports troubles changesets
- new touch command
- new fold command

- rebase refuse to work on public changeset again
- rebase explicitly state that there is nothing to rebase because everything is
  extinct() when that happen.
- amend now cleanly abort when --change switch is misused


0.7 -- 2012-08-06

- hook: work around insanely huge value in obsolete pushkey call
- pushkey: properly handle abort during obsolete markers push
- amend: wrap the whole process in a single transaction.
- evolve: tweak and add EOL to kill warning
- obsolete: fix doc, rebase no longer aborts with --keep
- obsolete/evolve: fix grammar in prerequisite messages
- evolve: avoid duplication in graft wrapper
- evolve: graft --continue is optional, test

0.6 -- 2012-07-31

- obsolete: change warning output to match mercurial core on
- qsync: ignore unexistent nodes
- make compat server both compatible with "dump" and "dump%i" version

0.5 -- 2012-07-16

- obsolete: Detect conflicting changeset!
- obsolete: adapt to core: marker are written in transaction now
- evolve: add the solve alias to obsolete
- doc: big update of terms and summary of the concept
- evolve: switch the official name for "kill" to prune


0.4.1 -- 2012-07-10

- [convert] properly exclude null successors from convertion
- Ignore buggy marker in newerversion


0.4.0 -- 2012-07-06

- obsolete: public changeset are no longer latecomer.
- obsolete: move to official binary format
- adapt for new mercurial
- obsolete: we are not compatible with 2.1 any more

0.3.0 -- 2012-06-27

- 
- obsolete:  Add "latecomer" error detection (stabilize does not handle resolution yet)
- evolve:    Introduce a new `uncommit` command to remove change from a changeset
- rebase:    allow the use of --keep again
- commit:    --amend option create obsolete marker (but still strip)
- obsolete:  fewer marker are created when collapsing revision.
- revset:    add, successors(), allsuccessors(), precursors(), allprecursors(),
             latecomer() and hidden()
- evolve:    add `prune` alias to `kill`.
- stabilize: clearly state that stabilize does nto handle conflict
- template:  add an {obsolete} keyword

0.2.0 -- 2012-06-20

- stabilize: improve choice of the next changeset to stabilize
- stabilize: improve resolution of several corner case
- rebase:    handle removing empty changesets
- rebase:    handle --collapse
- evolve:   add `obsolete` alias to `kill`
- evolve:   add `evolve` alias to `stabilize`