Mercurialでプロジェクトを実行していて、ファイルが自動的にマージできるはずなのに、ファイルを手動でマージする必要がある状況をたくさん見つけています。これらの分野でMercurialを支援するためにMercurialに提供できるオプションがあるかどうか疑問に思っています。
プロジェクトには、プロジェクトで編集できない数百のファイルを含む基盤となるプラットフォームがあります。プラットフォームが更新されると、プロジェクトはMercurialの外部でこれらのコアファイルの更新されたバージョンを取得します。私が繰り返し見ているシーケンスは次のとおりです。
中央開発システム(コアプラットフォーム更新メカニズムにリンクされている):
- コアプラットフォームの新しいバージョンを入手してください。
- これらの変更をコミットします。
hg commit -m "New platform release"
- 中央のMercurialサーバーにプッシュする
私のLinuxボックスの場合:
- ローカル変更をコミットする
- 中央のMercurialサーバーからプルし、マージしてみてください
- コアファイルでのマージの競合を見つける
マージする必要があった最後の2つのコアファイルは、ベースバージョンとローカルバージョンの間で変更はありません(アクセス時間はビルド中に更新されますが、内容は同じです)。唯一の変更は、マージしているリモートリビジョンにあります。
私が知っている唯一の非標準構成は、中央のMercurialインスタンスがRhodecodeで実行されており、Redmineリポジトリを更新するためのコミットフックが設定されていることです。
マージを理解するのに役立つMercurialで構成できるものは他にありますか?