Size: 2173
Comment:
|
Size: 2237
Comment: Cleanup
|
Deletions are marked like this. | Additions are marked like this. |
Line 10: | Line 10: |
/!\ This feature is experimental to be used only by experienced Mercurial user that understand underlying concept | /!\ This feature is experimental, to be used only by experienced Mercurial users that understand the underlying concepts |
Line 16: | Line 16: |
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 19: | Line 19: |
* 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 22: | Line 22: |
/!\ 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 24: | Line 24: |
* 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 32: | Line 32: |
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 |
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 |
Line 39: | Line 39: |
evolve:: automatically solve troubles affecting changesets | evolve:: automatically resolves troubles affecting changesets |
Line 43: | Line 43: |
* 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 |
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 '[extensions]\nevolve=$PWD/mutable-history/hgext/evolve.py' >> ~/.hgrc
Evolve requires the latest Mercurial version: 2.5