Differences between revisions 19 and 24 (spanning 5 versions)
Revision 19 as of 2016-06-13 16:04:38
Size: 2558
Editor: GregorySzorc
Comment: update link to repo
Revision 24 as of 2017-08-30 12:42:33
Size: 2400
Editor: RyanMcElroy
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
''Author: Pierre-Yves David for Various company'' ''Author: Pierre-Yves David for Various companies''
Line 9: Line 9:
/!\ This feature is experimental, to be used only by experienced Mercurial users that understand the underlying concepts (i) This extension enable and enhance the inprogress ChangesetEvolution work. See the dedicated page for details before using it.
Line 29: 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
 prev:: moves to the parent of the current changeset
 next:: 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,
 prev:: moves to the parent of the current changeset,
 next:: moves to the child of the current changeset,
Line 42: Line 44:
First you have to download the extension code. Pick a directory {{{<dir>}}} in your working environment, {{{cd}}} into that and clone evolve. Like this: The extension is [[https://pypi.python.org/pypi/hg-evolve|available on PyPi]]

To install use
Line 45: Line 49:
$ cd <dir>
$ hg clone http://hg.netv6.net/evolve-main/
$ pip install --user hg-evolve
Line 48: Line 51:
Line 52: Line 56:
evolve = <dir>/evolve-main/hgext/evolve.py evolve =
Line 54: Line 58:
/!\ We have various compatibility branch (check hg branches), but we recommend using evolve with the latest Stable mercurial version

Evolve Extension

This extension is not distributed along with Mercurial releases

Author: Pierre-Yves David for Various companies

(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

The extension is available on PyPi

To install use

$ pip install --user hg-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 =

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