2011-04-02 2 views
4

私の理解:Mercurialには、すべてのユーザー(インストールレベル)、各ユーザー(ユーザーレベル)のオーバーライド、各リポジトリ(repoレベル)のオーバーライドの3つのレベルの構成ファイルがあります。MercurialのHGRCPATHはユーザーレベルの.hgrcまたはインストールレベルの設定ファイルを上書きしますか?

HGRCPATH環境変数は、Windowsのusers/<user>ディレクトリにある2番目のレベルを上書きするように見えます。

しかしTortoiseHgのの設定画面では、を参照して(との直接編集することができます)HGRCPATHによって上書きされた場合でも、users/<user>ディレクトリ内のユーザー・レベルの設定ファイルを。簡単な実験では、TortoiseHGは実際にHGRCPATHで設定されたものを使用するのではなく、HGRCPATHによって設定されたものを使用することが示されています。

これはTortoiseのバグですか?またはHGRCPATHに欠陥があることを理解していますか?

+0

TortoiseHG 2.02、Mercurial 1.8.1 – jontyc

答えて

3

HGRCPATHが設定されている場合、システム全体のファイル(linux上の/etc/mercurial/hgrc)とユーザごとのファイルは無視されますが、$(hg root)/.hg/hgrcファイルは依然として参照されているようです。それは亀の外での私の経験でした。

私は、tortoiseh GUIがhgrcコマンドを表示しないようには期待していませんが、その設定を取り込まないようにしています。それはあなたが見ているものですか?

http://www.selenic.com/mercurial/hg.1.html

+0

TortoiseHGのワークベンチには、ユーザーの.hgrcファイルにguiフロントエンドを提供する設定ページがあり、ボタンをクリックして手動で編集することができます。ユーザーの.hgrcファイルの内容を消去した場合、Tortoiseはメニューから私の視覚的差分ツールを選択することを許可しません。しかし、ワークベンチで視覚的な差分を行う場合は、私のカスタムdiffツールが呼び出されます。これはHGRCPATHに座っている.hgrcファイルで定義されているためです。 – jontyc

+0

したがって、HGRCPATHが使用されている場合、TortoiseHGのユーザー設定画面は無効です。 – jontyc

+0

私はそれが私が期待していると思います。そのGUIページ(と、私はそれを使ったことがない)はあなたのユーザー設定を編集し、HGRCPATHはMercurialにあなたのユーザー設定を無視するように指示します。私には理にかなっています。 –

4

はい、これはTortoiseHgの中に欠陥でなければなりません。 hg help environmentヘルプテキストには、HGRCPATHを使用して、構成ファイルのデフォルトの検索パスを上書きすると記載されています。これは~/.hgrcが含まれており、すぐにあなたのユーザー設定を無効にすることができます:

$ HGRCPATH= hg log # <- only read .hg/hgrc, ignore all other config files 

あなたはMercurialが.hg/hgrcを読み飛ばすことはできません。