Differences between revisions 8 and 9
Revision 8 as of 2013-02-10 11:31:38
Size: 2237
Editor: s0-0
Comment: Cleanup
Revision 9 as of 2013-06-01 10:04:52
Size: 2242
Editor: adsl-ull-38-234
Comment: added double quoting to get variable interpolation in bash and "-e" option to echo to get escape sequence right. Also leading '\n' because you never know.
Deletions are marked like this. Additions are marked like this.
Line 53: Line 53:
  $ echo '[extensions]\nevolve=$PWD/mutable-history/hgext/evolve.py' >> ~/.hgrc   $ echo -e "\n[extensions]\nevolve=$PWD/mutable-history/hgext/evolve.py" >> ~/.hgrc

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:

  • additional history rewriting commands
  • the evolve command to automatically solve troubles
  • some user interface warning messages related to obsolete changeset troubles

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

  • history rewriting commands do not strip changesets anymore; they make them obsolete.
  • history rewriting commands will work on any changesets, possibly creating unstable changesets.
  • pull and push exchange obsolescence data with other evolve-enabled repositories - this may have a performance impact!

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

  • a warning is issued when the current working directory parent becomes obsolete
  • a warning is issued when a command results in more troubled changesets

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

EvolveExtension (last edited 2017-08-30 12:42:33 by RyanMcElroy)