2011-05-31 9 views
25

私のリポジトリでは、私が使っているモジュール用のいくつかのサブリポジトリを追加しました。私はいつもこれらのサブレポを「プルのみ」として扱うつもりです。私はそれらに何か変更を加えるつもりはないが、新しいバージョンがリリースされた場合に新しい変更を容易に引き出す能力を保持したい。水銀がサブレポを押さないようにするにはどうすればよいですか?

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

+0

@ Mercur MercurialはGit .gitignoreファイルに似ていませんか? – Arlen

+0

もちろん、それはありますが、彼はファイルごとではなくサブレポを無視しています。 Gitは同じサブペーオの内容を持ち、同様に.gitignoreで解決されません。 –

+0

私はサブレポを無視したくないので、決して変わらないので、プッシュの一部にしたくないのです。 – Soviut

答えて

-1

使用する水銀のクライアントによって異なります。私はtortoisehgを使用しています。フォルダを右クリックし、tortoisehg >> forgetでファイルを選択すると、それはすべてのことがわかります。ファイルを選択すると、もう一度気にする必要はありません。

+1

ファイルを無視することを考えていますが、サブリポジトリをプッシュしないように頼んでいます。 –

7

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

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

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

subrepoエントリはプルだけ上流のレポにしていますが、「彼ら」

別として、変更をマージし、独自の1つに直接指していないということでアイデア:おそらくこのような何かサブプロポの変更を中止することです。変更がなくコミットもない場合、pushはそのrepoを右に渡します。その作業モードに切り替えると、hogrcファイルの[ui]セクションのcommitsubrepos = falseを誤ってそのレポでコミットすることを避けることができます。

ここにあるものを変更する場合は、それらをコミットする必要があります(安全のために!)、コミットしている場合は、親がプッシュされるとプッシュされます。彼らはどこに押し込まれ、あなたは行こうとしています。

+2

サブレポを編集したり変更したりしていません。厳密に私が参照するための図書館としてあります。私は彼らにサブリポジトリのままにして、私が更新を引き出すことができるようにしたいが、何も変わらない時に彼らが絶えずプッシュしようとはしない。 – Soviut

+1

サブレポで何も変更しなかった場合、Mercurialはそれらを押し込もうとしません。むしろ変更を検出せず、プッシュはすぐに終了します。あなたがそのレポに落ちて、「出て行く」はあなたに何かのコンテンツを示していれば、あなたは何かを変えた(そしてコミットした)。親リポジトリで 'hg push 'を実行したときに表示される特定の出力で質問を更新できますか? –

+1

親リポジトリを押してください。私は基本的にちょうどそれが通常のプッシュよりも遅いと思われるので、サブrepoのチェックを防ぐことを望んでいた。 – Soviut

関連する問題