Differences between revisions 1 and 20 (spanning 19 versions)
Revision 1 as of 2013-02-01 22:36:18
Size: 1392
Comment: initial stub
Revision 20 as of 2016-07-20 18:21:59
Size: 2568
Editor: rcl
Comment: replace clone repo URL with official one
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
= Rebase Extension = = Evolve Extension =
Line 5: Line 5:
''Author: Pierre-Yves David for Logilab'' ''Author: Pierre-Yves David for Various company''
Line 9: Line 9:
/!\ This feature is experimental, to be used only by experienced Mercurial users that understand the underlying concepts
Line 10: Line 11:
/!\ This feature is experimental to be used only by experienced Mercurial user that understand underlying concept Code repository: https://www.mercurial-scm.org/repo/evolve/
Line 13: Line 14:
The `evolve` extension is an experimental implementation of the ChangesetEvolution concept. Most of its content has been moved into core except:
Line 14: Line 16:
The `evolve` extension is an experimental implementation of the ChangesetEvolution concept. Most of it's content have 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
Line 16: Line 20:
* additional history rewriting commands
* the evolve command to automatically solves troubles
* some user interface warning messages related to obsolescence changesets troubles,
/!\ The evolve extension enables the ChangesetEvolution feature, changing some of Mercurial's default behavior.
Line 20: Line 22:
Current official home page: http://hg-lab.logilab.org/doc/mutable-history/html/  * 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/
Line 23: Line 29:

uncommit:: extracts changes from a commit
fold:: gather changes from multiple changesets in a single one
prune:: discard changesets (using obsolescence marker)
touch:: replace a changesets with one with the same payload but with a different node
gdown:: move to the parent of the current checkout changeset
gdown:: move to the children of the current checkout changeset

evolve:: automatically solve troubles affecting changesets
 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
Line 34: Line 38:
 * a warning is issued when the current working directory parent becomes obsolete
 * a warning is issued when a command results in more troubled changesets
Line 35: Line 41:
* issue a warning when current working directory parent becomes obsolete
* issue a warning when a commands result in more troubled changesets
== 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

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:

  • 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
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-main/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)