Differences between revisions 6 and 24 (spanning 18 versions)
Revision 6 as of 2013-02-09 11:17:42
Size: 2106
Comment: add setup setup and more data about consequence of enable evolve
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 Logilab'' ''Author: Pierre-Yves David for Various companies''
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 user that understand underlying concept
Code repository: https://www.mercurial-scm.org/repo/evolve/
Line 13: Line 15:

The `evolve` extension is an experimental implementation of the ChangesetEvolution concept. Most of it's content have been moved into core except:
The `evolve` extension is an experimental implementation of the ChangesetEvolution concept. Most of its content has been moved into core except:
Line 17: Line 18:
 * the evolve command to automatically solves troubles
 * some user interface warning messages related to obsolescence changesets troubles,
 * the evolve command to automatically solve troubles
 * some user interface warning messages related to obsolete changeset troubles
Line 20: Line 21:
/!\ The evolve extension enables ChangesetEvolution feature. Changing somes of default Mercurial behavior. /!\ The evolve extension enables the ChangesetEvolution feature, changing some of Mercurial's default behavior.
Line 22: Line 23:
* history rewriting commands do not strip changesets anymore, they turn them obsolete.
* history rewriting commands accept to work on any changesets possibly creating unstable changesets
* pull and push exchanges obsolescence data with other evolve enabled repository (This may have performance impact)
 * 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!
Line 26: Line 27:
Current official home page: http://hg-lab.logilab.org/doc/mutable-history/html/ Current official Documentation: https://www.mercurial-scm.org/doc/evolution/
Line 29: Line 30:

 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,
 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
Line 40: Line 40:

* issue a warning when current working directory parent becomes obsolete
 * issue a warning when a commands result in more troubled changesets
 * 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 45: Line 44:
The extension is [[https://pypi.python.org/pypi/hg-evolve|available on PyPi]]
Line 46: Line 46:

Setting up the evolve extension is simple:
To install use
Line 50: Line 49:
  $ hg clone https://bitbucket.org/marmoute/mutable-history -u stable
  $ echo '[extensions]\nevolve=$PWD/mutable-history/hgext/evolve.py' >> ~/.hgrc
$ pip install --user hg-evolve
Line 54: Line 52:
/!\ Evolve requires the latest Mercurial version: 2.5 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 =
}}}

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)