Comme suggéré par Mark, la MqExtension est une solution pour votre problème. IMHO un flux de travail plus simple consiste à utiliser l' extension rebase . Supposons que vous ayez une histoire comme celle-ci:
@ changeset: 2:81b92083cb1d
| tag: tip
| summary: my new feature: edit file a
|
o changeset: 1:8bdc4508ac7b
| summary: my new feature: add file b
|
o changeset: 0:d554afd54164
summary: initial
Cela signifie que la révision 0
est la base sur laquelle vous avez commencé à travailler sur votre fonctionnalité. Maintenant, vous voulez avoir des révisions 1-2
sur une branche nommée, disons my-feature
. Mettre à jour vers la révision 0
et créer cette branche:
$ hg up 0
$ hg branch my-feature
$ hg ci -m "start new branch my-feature"
L'histoire ressemble maintenant à ceci:
@ changeset: 3:b5939750b911
| branch: my-feature
| tag: tip
| parent: 0:d554afd54164
| summary: start new branch my-feature
|
| o changeset: 2:81b92083cb1d
| | summary: my new feature: edit file a
| |
| o changeset: 1:8bdc4508ac7b
|/ summary: my new feature: add file b
|
o changeset: 0:d554afd54164
summary: initial
Utilisez la rebase
commande pour déplacer les révisions 1-2
vers la révision 3
:
$ hg rebase -s 1 -d 3
Cela donne le graphique suivant:
@ changeset: 3:88a90f9bbde7
| branch: my-feature
| tag: tip
| summary: my new feature: edit file a
|
o changeset: 2:38f5adf2cf4b
| branch: my-feature
| summary: my new feature: add file b
|
o changeset: 1:b5939750b911
| branch: my-feature
| summary: start new branch my-feature
|
o changeset: 0:d554afd54164
summary: initial
C'est tout ... comme mentionné dans les commentaires à la réponse de Mark, déplacer des ensembles de modifications déjà poussés est généralement une mauvaise idée, à moins que vous ne travailliez dans une petite équipe où vous êtes capable de communiquer et d'appliquer votre manipulation d'historique.