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: https://www.mercurial-scm.org/repo/evolve/

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: https://www.mercurial-scm.org/doc/evolution/

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
prev
moves to the parent of the current changeset
next
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://www.mercurial-scm.org/repo/evolve/

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>/evolve-main/hgext/evolve.py

/!\ We have various compatibility branch (check hg branches), but we recommend using evolve with the latest Stable mercurial version