Evolve Extension

This extension is not distributed along with Mercurial releases

Author: Pierre-Yves David for Various company

/!\ This feature is experimental, to be used only by experienced Mercurial users that understand the underlying concepts

Code repository: http://42.netv6.net/evolve-main/

1. Introduction

The evolve extension is an experimental implementation of the ChangesetEvolution concept. Most of its content has been moved into core except:

/!\ The evolve extension enables the ChangesetEvolution feature, changing some of Mercurial's default behavior.

Current official Documentation: http://evolution.experimentalworks.net/doc/

2. Additional Commands

uncommit
extracts changes from a commit into the working directory
fold
gathers changes from multiple changesets into a single one
prune
discards changesets (using obsolescence markers)
touch
replaces a changeset with a different one containing the same payload, but with a different hash
gdown
moves to the parent of the current changeset
gup
moves to the child of the current changeset
evolve
automatically resolves troubles affecting changesets

3. Additional UI Messages

4. Setup

First you have to download the extension code. Pick a directory <dir> in your working environment, cd into that and clone evolve. Like this:

$ cd <dir>
$ hg clone https://bitbucket.org/marmoute/mutable-history -u stable

Then configure your .hgrc to enable the extension by adding the following lines (remember to replace <dir> with the path where you just cloned the extension):

[extensions]
evolve = <dir>/mutable-history/hgext/evolve.py

/!\ Evolve requires the latest Mercurial version: 2.5