私のリポジトリには、使用しているモジュール用のサブリポジトリがいくつか追加されています。私は常にこれらのサブリポジトリを「プルのみ」として扱います。それらに変更を加える予定はありませんが、新しいバージョンがリリースされた場合に新しい変更を簡単にプルできる機能を保持したいと考えています。
メイン リポジトリをプッシュすると、Mercurial はサブ リポジトリをプッシュしようとします。これを防ぐ設定はありますか?
私のリポジトリには、使用しているモジュール用のサブリポジトリがいくつか追加されています。私は常にこれらのサブリポジトリを「プルのみ」として扱います。それらに変更を加える予定はありませんが、新しいバージョンがリリースされた場合に新しい変更を簡単にプルできる機能を保持したいと考えています。
メイン リポジトリをプッシュすると、Mercurial はサブ リポジトリをプッシュしようとします。これを防ぐ設定はありますか?
探している動作に応じて、できることがいくつかあります。
実際にサブレポ内で編集してコミットしていますか? その場合は、別のベンダー ブランチのようなレポを作成して、自分の変更を上流 (「彼らの」) の変更とマージし、サブレポがそれを指すようにする必要があります。おそらくこのようなもの:
repos
main
subrepo
.hgsub # contains: "subrepo=../theirproject"
theirproject # clone of remote, upstream repo
サブレポエントリは、プルのみのアップストリームレポを直接指すのではなく、変更を「彼らのもの」とマージする独自のレポを指すという考えです。
もう 1 つのオプションは、サブレポでの変更を停止することです。変更もコミットもない場合、プッシュはそのリポジトリをすぐに通過します。その作業モードに切り替えると、hgrc ファイルcommitsubrepos = false
のセクションに を設定して、そのレポで誤ってコミットするのを避けることができます。[ui]
肝心なのは、そこにあるものを変更している場合は、それらをコミットする必要があるということです (安全のために!)。それらをコミットすると、親がプッシュされた場合にプッシュされるため、それらの場所を制御するだけです。再プッシュすると、準備完了です。
使用する Mercurial クライアントによって異なります。私は tortoisehg を使用していますが、フォルダーを右クリックして tortoisehg でファイルを選択する >> 忘れるだけで十分です。ファイルを選択すれば、もう気にする必要はありません。