1. Pierre-Yves David
  2. mutable-history


mutable-history / README

Pierre-Yves Davi… 4580ff7 
Pierre-Yves Davi… dca8644 

Pierre-Yves Davi… c9983eb 
Pierre-Yves Davi… dca8644 
Patrick Mézard 8c5da9e 

Pierre-Yves Davi… 232990f 
Pierre-Yves Davi… c9983eb 
Pierre-Yves Davi… dca8644 
Patrick Mézard 8c5da9e 
Pierre-Yves Davi… 40854e9 
Pierre-Yves Davi… dca8644 

Patrick Mézard 8c5da9e 

Pierre-Yves Davi… ff070b9 
Pierre-Yves Davi… c9983eb 
Pierre-Yves Davi… ff070b9 

Pierre-Yves Davi… dca8644 
Pierre-Yves Davi… 232990f 

Pierre-Yves Davi… b5d9841 

Pierre-Yves Davi… 34020ca 
Pierre-Yves Davi… b5d9841 
Pierre-Yves Davi… 34020ca 

Pierre-Yves Davi… b5d9841 

Pierre-Yves Davi… 34020ca 
Arne Babenhauser… 240b379 
Pierre-Yves Davi… 34020ca 
Pierre-Yves Davi… 43a6867 

Pierre-Yves Davi… cdb52bb 
Pierre-Yves Davi… 40854e9 
Pierre-Yves Davi… b21437d 

Denis Laxalde f752089 
Pierre-Yves Davi… b5a85a8 
Pierre-Yves Davi… 7d4427d 
TakUnity 070bbbb 

TakUnity 4c0f6d5 
Pierre-Yves Davi… d48aae1 

Pierre-Yves Davi… 40854e9 

Pierre-Yves Davi… 27c890b 

Pierre-Yves Davi… 28d79c2 

Pierre-Yves Davi… 5527e4f 

Pierre-Yves Davi… d14f9c4 
Pierre-Yves Davi… 31efc36 

Pierre-Yves Davi… 9648216 

Pierre-Yves Davi… 31efc36 
Pierre-Yves Davi… d14f9c4 
Pierre-Yves Davi… 3704751 

Pierre-Yves Davi… 3859f8e 

Pierre-Yves Davi… 13ccb68 

Pierre-Yves Davi… 595ae87 
Pierre-Yves Davi… 13ccb68 

Pierre-Yves Davi… b63da0f 
Pierre-Yves Davi… d2531a7 

Pierre-Yves Davi… b12ff7e 
Pierre-Yves Davi… 13ccb68 

Pierre-Yves Davi… 1b2757c 
Pierre-Yves Davi… 43a6867 
Pierre-Yves Davi… 1b2757c 

Pierre-Yves Davi… c046b08 

Pierre-Yves Davi… c2223b3 

Pierre-Yves Davi… c046b08 

Pierre-Yves Davi… c2223b3 
Pierre-Yves Davi… 43a6867 

Mutable History For Mercurial

Extends Mercurial feature related to Changeset Evolution

This extension provides several commands to mutate history and deal with
issues it may raise.

It also:

    - enables the "Changeset Obsolescence" feature of mercurial,
    - issues several warning messages when troubles appear in your repository.

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

You can quicky enable it by adding the line below to the extensions
section of you 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:



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.


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


3.1.0 -- 2013-02-11

- amend: drop deprecated --change option for amend
- alias: add a grab aliast to be used instead of graft -O
- touch: add a --duplicate option to *not* obsolete the old version
- touch: fix touching multiple revision at the same time
- evolve: add a --all option
- prune: various minor improvements
- prune: add option to prune a specific bookmark
- prune: add -u and -d option to control metadata

3.0.0 -- 2013-02-02

- compatibility with 2.5

2.2.0 --

- make evolve smarter at picking next troubled to solved without --any

2.1.0 -- 2012-12-03

- qsync fixes
- have qfold ask for commit message

2.0.0 -- 2012-10-26

- compat with mercurial 2.4

1.1.0 -- 2012-10-26

- fix troubles creation reporting from rebase
- rename latecomer to bumped
- renamed conflicting to divergent
- smarter divergent handling

1.0.2 -- 2012-09-19

- fix hg fold bug
- fix hg pull --rebase
- fix detection of conflict with external tools
- adapt to core movement (caches and --amend)

1.0.1 -- 2012-08-31

- documentation improvement
- fix a performance bug with hgweb

1.0 -- 2012-08-29

- Align with Mercurial version 2.3 (drop 2.2 support).
- stabilize handle killed parent
- stabilize handle late comer
- stabilize handle conflicting
- 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
- new basic olog alias

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