数日前、サードパーティのライブラリを更新するために現在のプロジェクトで「ベンダー分岐」を採用することにしたので、この質問で説明されているのと同様のプロセスを実行しようとしました:
Vendor Branching, Mercurial Style?
今、私は基本的にこのシナリオを持っています:
http://host/hg/vendor
- ライブラリのバージョン 2.0 とバージョン 3.0 へのアップデートが含まれていますhttp://host/hg/project
- これはメイン プロジェクトであり、ローカルの変更を加えたバージョン 2.0 のライブラリが既に含まれています (以前はバージョン 1.0 で、手動で更新されました)。
ベンダーレポで私:
- 「vendor-lib」という名前のブランチを作成しました
- 追加され
lib-2.0
、タグが追加されましたlib-2.0
- 追加 (addremove)
lib-3.0
とタグlib-3.0
私のプロジェクトレポでは:
- 外部ベンダー リポジトリを取得しました
hg pull ../vendor -f
- デフォルトから私がした
hg merge vendor-lib
ここで問題が発生します。すべてのファイルが競合しています。競合では、Local と Other は通常のファイルですが、Base は空です。したがって、解決策はそれらの1つを追加するか、ファイルを完全に空に設定することです。vendor-lib
これは、プルされたブランチにデフォルトの共通の親がないために発生すると想定しています。
両方のブランチ間で共通の親を設定する方法があるかどうか、または と の間のデルタをデフォルトにマージする方法があるかどうかはわかりませlib-2.0
んlib-3.0
。
よろしくお願いします。ありがとうございました。