Conforme sugerido por Mark, o MqExtension é uma solução para o seu problema. IMHO um fluxo de trabalho mais simples é usar a extensão rebase . Suponha que você tenha uma história como esta:
@ 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
Isso significa que a revisão 0
é a base na qual você começou a trabalhar no seu recurso. Agora você quer ter revisões 1-2
em uma ramificação nomeada, digamos my-feature
. Atualize para revisão 0
e crie esse ramo:
$ hg up 0
$ hg branch my-feature
$ hg ci -m "start new branch my-feature"
A história agora é assim:
@ 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
Use o rebase
comando para mover as revisões 1-2
para a revisão 3
:
$ hg rebase -s 1 -d 3
Isso resulta no seguinte gráfico:
@ 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
É isso aí. Conforme mencionado nos comentários à resposta de Mark, mover-se por conjuntos de alterações já enviados geralmente é uma má idéia, a menos que você trabalhe em uma equipe pequena, na qual poderá se comunicar e reforçar a manipulação do histórico.