2011-10-17 2 views
5

私はいくつかのサブレポジトリを持つMercurialリポジトリを持っています。メインのリポジトリと、オプションでサブリポジトリの特殊なものの両方で、一般的な.hgignore-file(例えば、オブジェクトファイルを無視する)だ​​けを定義する可能性はありますか?Mercurialリポジトリの.hgignoreをすべてのサブレポジトリで使用できるようにしますか?

マニュアルに十分な情報がありません。 .hgignoreファイルを指定して

[ui] 
ignore = .hgignore 

と私のホームディレクトリの.hgrcでも指定できません。

アイデア?

答えて

3

.hgignore各サブポレトのファイルは、そのサブペクトの特殊なファイルとして機能します。あなたのグローバル.hgrc(としませんでレポでignore = .hgignoreがあなたのために動作しませんでしたやって、なぜ

[ui] 
ignore.main = \absolute\path\to\mainrepo\.hgignore 

理由:次に、各subrepoのhgrcファイルでこれを含めることにより、メインリポジトリの.hgignore主なものとしてを使用することができますhgrc)は、単純に.hgignoreが相対ファイルパスであり、絶対パスへの解決がhgを呼び出すときに使用される現在の作業ディレクトリによって決まるということです。例:あなたは\repos\main\にいるとhg stを起動した場合

  • 、それは\repos\main\.hgignoreを探します。 hg st -R nestedを呼び出した場合と同じことですが、現在の作業ディレクトリが同じであるためです。
  • しかし、\repos\main\nested\にあり、hg stが呼び出された場合、設定は\repos\main\nested\.hgignoreになります。

あなたのホームディレクトリにあるグローバル.hgignoreを指定したい場合は、非相対パス(または少なくともはるかに少ない相対)でそれを指定する必要があります:

[ui] 
ignore = ~\.hgignore 
+0

私は」そこにあなたの最初の箇条書きの点についてはわかりません。 'hg st -R nested'を呼び出すと、' \ repos \ main \ nested \ .hgignore'が使用されます。これはネストされたリポジトリの作業ディレクトリの '.hgignore'ファイルです。意味するが、それはそのようには読まない。 – icabod

+0

@icabod:テストする* nixマシンはありませんが、これはWindowsの動作です。 'main'と' nested'に異なる 'extra.hgignore'ファイルがあり、' nested \ .hg \ hgrc'に 'ignore = extra.hgignore'を入れて' hg st'と 'hg st -R nested'を実行すると、どちらも 'main \ extra.hgignore'から抜き出します。 '' nested \ extra.hgignore'を取得する代わりに '' nested ''に '' cd''を実行するだけです。 (私のテストでは、 'main'と' nested'の両方に4つの拡張子を付けて4つのファイルを使いました。) –

+0

ああ、私が試していたときにあなたの答えの一部を逃したと思います。私の間違い:) – icabod

関連する問題