Differences between revisions 16 and 22 (spanning 6 versions)
Revision 16 as of 2015-09-23 21:48:56
Size: 2563
Comment: clarify repository location.
Revision 22 as of 2017-01-03 15:38:54
Size: 2651
Comment: update the warning to make it less scary
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
(i) This extension enable and enhance the inprogress ChangesetEvolution work. See the dedicated page for details before using it.
Line 10: Line 11:
/!\ This feature is experimental, to be used only by experienced Mercurial users that understand the underlying concepts
Line 12: Line 12:
Code repository: http://hg.netv6.net/evolve-main/ Code repository: https://www.mercurial-scm.org/repo/evolve/
Line 15: Line 15:
Line 28: Line 27:
Current official Documentation: http://evolution.experimentalworks.net/doc/ Current official Documentation: https://www.mercurial-scm.org/doc/evolution/
Line 31: Line 30:

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:: mo
ves to the parent of the current changeset
 gup
:: moves to the child of the current changeset
 uncommit:: extracts changes from a commit into the working directory,
 fold:: gathers changes from multiple changesets into a single one,
 split:: dispatch changes from a single changesets into multiple one,

 prune:: discards changesets (using obsolescence markers),
 touch:: replaces a changeset with a different one containing the same payload, but with a different hash,
 pre
v:: moves to the parent of the current changeset,
 next:: moves to the child of the current changeset,
Line 42: Line 40:
Line 47: Line 44:
Line 52: Line 48:
$ hg clone http://hg.netv6.net/evolve-main/ $ hg clone https://www.mercurial-scm.org/repo/evolve/
Line 54: Line 50:
Line 59: Line 54:
evolve = <dir>/evolve-main/hgext/evolve.py evolve = <dir>/evolve/hgext/evolve.py
Line 61: Line 56:

Evolve Extension

This extension is not distributed along with Mercurial releases

Author: Pierre-Yves David for Various company

(i) This extension enable and enhance the inprogress ChangesetEvolution work. See the dedicated page for details before using it.

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:

  • 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 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,
split
dispatch changes from a single changesets into multiple 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

  • 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

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

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

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