Come suggerito da Mark, MqExtension è una soluzione per il tuo problema. IMHO un flusso di lavoro più semplice consiste nell'usare l' estensione rebase . Supponi di avere una storia come questa:
@ 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
Ciò significa che la revisione 0
è la base su cui hai iniziato a lavorare sulla tua funzionalità. Ora vuoi avere le revisioni 1-2
su un ramo con nome, diciamo my-feature
. Aggiorna alla revisione 0
e crea quel ramo:
$ hg up 0
$ hg branch my-feature
$ hg ci -m "start new branch my-feature"
La cronologia ora assomiglia a questa:
@ 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
Utilizzare il rebase
comando per spostare le revisioni 1-2
in revisione 3
:
$ hg rebase -s 1 -d 3
Ciò si traduce nel seguente grafico:
@ 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
Questo è tutto .. come menzionato nei commenti alla risposta di Mark, spostare i changeset già inviati in genere è una cattiva idea, a meno che tu non lavori in un piccolo team dove sei in grado di comunicare e imporre la manipolazione della tua cronologia.