変更セットをあるブランチから別のブランチに移動したいと考えています。基本的に、私は現在持っています:
A -> B -> C -> D # default branch
そして私が欲しい:
A # default branch
\-> B -> C -> D # some_new_branch
some_new_branch がまだ存在しない場所。私はgitに慣れているので、単純な「水銀」の方法が欠けていると思います。
1 つの方法は、B、C、D のパッチをエクスポートすることです。A に更新します。ブランチ; パッチを適用:
hg export -o patch B C D
hg update A
hg branch branchname
hg import patch
デフォルト ブランチから B、C、D を削除するには、mq 拡張機能のstrip
コマンドを使用します。
git でのチェリーピック操作のように聞こえます。Transplant Extensionは、あなたが探しているものかもしれません。
移植またはパッチの代わりに、移植を使用できます。
hg update A
hg branch branchname
hg graft -D "B:D"
hg strip B
履歴を変更することは悪い習慣であることに注意してください。まだプッシュしていない場合にのみストリップする必要があります。そうしないと、変更をバックアウトする可能性があります。