バックグラウンド:
最初はファイルbase.cがあり、そのファイルはブランチが 1 つしかないリポジトリにありましたBase。
Base-branchを作るために分岐されましたExtended。次に、この新しいブランチにいくつかの変更が加えられましたbase.c。
のファイルbase.cでバグが修正された場合Base、それらは にマージされExtendedます。
base.cブランチにあまりにも多くのものを追加するExtendedのは良い考えではないことが判明したため、ファイルはにコピーされext.cます。次に、ほとんどのExtended追加機能が から削除されbase.c、Base機能が から削除されext.cます。したがって、この時点base.cでExtendedは と非常によく似ていBaseます。
問題:
ファイルが分割されたとき、共通の履歴を共有していたため、Mercurialext.cは のコピーであると通知されました。base.c残念ながら、これは良い考えではありませんでした。
バグがBaseブランチで修正され、 にマージされた場合Extended、Mercurial はそれらの変更を と の両方に適用する必要があると考えていbase.cますext.c。これにより、マージが非常に煩わしくなります。
ext.cと同じと見なされなくなったことを Mercurial に伝える方法はありbase.cますか? 解決策の 1 つは新しいファイルに置き換えることext.cですが、そうすると履歴が追跡されません。