このレポ構造を取ります:
Server (main repo)
ProjectA (subrepo)
SharedLibrary (subrepo)
Client (main repo)
ProjectB (subrepo)
SharedLibrary (subrepo)
SharedLibraryは同じフォルダー(これはWindows)を指し、各メインリポジトリの下にある個別のコピー/クローンではありません。
各メインリポジトリに0と1(ヒント)の2つのチェンジセットがあると仮定します。1(ヒント)リビジョンの両方のメインリポジトリから開始します。
次の手順を実行します。
クライアントリポジトリで、チェンジセット0に更新します。これにより、ProjectBとSharedLibraryが以前の一致するリビジョンに更新されます。
ProjectAはSharedLibraryと同期していません。ステップ1は、SharedLibraryをProjectAに必要なリビジョンよりも古いリビジョンに更新しました。これはまだ1(ヒント)です。
サーバーリポジトリでは、SharedLibraryをProjectAの正しいリビジョンに更新する必要があるため、サーバーメインリポジトリでhgupdatetipを実行します。これにより、SharedLibraryが正しいリビジョンに更新されません。これにより、SharedLibraryはステップ1と同じリビジョンのままになります。
クライアントリポジトリに戻り、hgupdatetipを実行します。SharedLibraryは、ProjectAとProjectBの両方で正しいリビジョンになりました。
サーバーリポジトリでの更新は、SharedLibraryが正しいリビジョンであるかどうかを確認していないようです。この動作は予想されますか、それともこれを行うためのより良い方法がありますか?