私のリポジトリの履歴は次のようになります。
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
ます。bar
foo
機能を手動で追加しbackend
、そのブランチfoo
に名前を付けbar
ます。
より良い方法はありますか?
また、これは正しいことですか?