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 users that understand the underlying concepts

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

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 home page: http://hg-lab.logilab.org/doc/mutable-history/html/

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

Setting up the evolve extension is simple:

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

/!\ Evolve requires the latest Mercurial version: 2.5