私のリポジトリの履歴は次のようになります。
A -- B -- C (branch "foo")
\
-- D (branch "bar")
2 つのブランチはどちらも「出荷」ブランチであり、共通のバックエンドに対して本質的に異なるフロントエンドです。
以前はすべてのコードが 1 つの分岐にあり、fooまたはbar機能がコンパイラ スイッチによってオンまたはオフにされていましたが、それぞれを個別に操作しやすくするために分岐しました。
問題は、共通の「バックエンド」ファイル自体がおそらく別のブランチである必要があることです-そして、私はしばしばそれらの共通ファイルで作業したいだけです。私がこれらのブランチを作成した方法のために、歴史は少し台無しになっています: ブランチbarの過去には、 からの機能がありましたfoo。
現在、私は単純に 1 つのブランチにhg transplant変更を加えてから、同じ変更を別のブランチにコピーしています。
代わりに、次のように変更できるようにしたいと思います。
__ C __ D' (branch "foo")
/ /
A -- B -- D (branch "backend")
\ \
-- E -- D'' (branch "bar")
つまり、ブランチで作業してからbackend、各配送ブランチ (fooおよびbar) で を使用しますhg merge backend。
現在の状況から私が説明している状況に移行するための最良の方法は何ですか? 私が考えることができる唯一の方法は次のとおりです。
fooすべての機能を削除しbar、そのブランチに名前を付けbackendます。古い枝を削除し
fooます。barfoo機能を手動で追加しbackend、そのブランチfooに名前を付けbarます。
より良い方法はありますか?
また、これは正しいことですか?