Evolve Extension

This extension is not distributed along with Mercurial releases

Author: Pierre-Yves David for Logilab

/!\ This feature is experimental to be used only by experienced Mercurial user that understand underlying concept

Code repository: https://bitbucket.org/marmoute/mutable-history

1. Introduction

The evolve extension is an experimental implementation of the ChangesetEvolution concept. Most of it's content have been moved into core except:

/!\ The evolve extension enables ChangesetEvolution feature. Changing somes of default Mercurial behavior.

* history rewriting commands do not strip changesets anymore, they turn them obsolete. * history rewriting commands accept to work on any changesets possibly creating unstable changesets * pull and push exchanges obsolescence data with other evolve enabled repository (This may have performance impact)

Current official home page: http://hg-lab.logilab.org/doc/mutable-history/html/

2. Additional Commands

uncommit
extracts changes from a commit
fold
gather changes from multiple changesets in a single one
prune
discard changesets (using obsolescence marker)
touch
replace a changesets with one with the same payload but with a different node
gdown
move to the parent of the current checkout changeset
gdown
move to the children of the current checkout changeset
evolve
automatically solve troubles affecting changesets

3. Additional UI Messages

4. Setup

Setting up the evolve extension is simple:

  $ hg clone https://bitbucket.org/marmoute/mutable-history -u stable
  $ echo '[extensions]\nevolve=$PWD/mutable-history/hgext/evolve.py' >> ~/.hgrc

/!\ Evolve requires the latest Mercurial version: 2.5