28

私のリポジトリには、使用しているモジュール用のサブリポジトリがいくつか追加されています。私は常にこれらのサブリポジトリを「プルのみ」として扱います。それらに変更を加える予定はありませんが、新しいバージョンがリリースされた場合に新しい変更を簡単にプルできる機能を保持したいと考えています。

メイン リポジトリをプッシュすると、Mercurial はサブ リポジトリをプッシュしようとします。これを防ぐ設定はありますか?

4

2 に答える 2

7

探している動作に応じて、できることがいくつかあります。

実際にサブレポ内で編集してコミットしていますか? その場合は、別のベンダー ブランチのようなレポを作成して、自分の変更を上流 (「彼らの」) の変更とマージし、サブレポがそれを指すようにする必要があります。おそらくこのようなもの:

repos
  main
    subrepo
    .hgsub # contains: "subrepo=../theirproject"
  theirproject  # clone of remote, upstream repo

サブレポエントリは、プルのみのアップストリームレポを直接指すのではなく、変更を「彼らのもの」とマージする独自のレポを指すという考えです。

もう 1 つのオプションは、サブレポでの変更を停止することです。変更もコミットもない場合、プッシュはそのリポジトリをすぐに通過します。その作業モードに切り替えると、hgrc ファイルcommitsubrepos = falseのセクションに を設定して、そのレポで誤ってコミットするのを避けることができます。[ui]

肝心なのは、そこにあるものを変更している場合は、それらをコミットする必要があるということです (安全のために!)。それらをコミットすると、親がプッシュされた場合にプッシュされるため、それらの場所を制御するだけです。再プッシュすると、準備完了です。

于 2011-05-31T02:43:17.757 に答える
-2

使用する Mercurial クライアントによって異なります。私は tortoisehg を使用していますが、フォルダーを右クリックして tortoisehg でファイルを選択する >> 忘れるだけで十分です。ファイルを選択すれば、もう気にする必要はありません。

于 2011-05-31T00:56:55.107 に答える