2011-04-02 58 views
4

我的理解:Mercurial有三个级别的配置文件:一个由所有用户共享(安装级别),每个用户(用户级别)覆盖一个,每个存储库(回购级别)覆盖一个。Mercurial的HGRCPATH是否覆盖用户级别.hgrc或安装级别配置文件?

HGRCPATH环境变量似乎覆盖了第二级别,即在Windows中的users/<user>目录中找到的第二级别。

然而,在TortoiseHG设置屏幕,它是指(并允许直接编辑)在users/<user>目录的用户级别的配置文件,即使当HGRCPATH覆盖。快速实验表明,TortoiseHG确实使用HGRCPATH设置的那个,而不是它所指示的那个。

这是一个龟龟的错误还是我对HGRCPATH有缺陷的理解?

+0

TortoiseHG 2.02,Mercurial 1.8.1 – jontyc 2011-04-02 01:49:26

回答

3

Mercurial手册页中的描述使得听起来好像设置了HGRCPATH,系统范围内的文件(linux上的/etc/mercurial/hgrc)和每个用户文件都被忽略,但$(hg root)/.hg/hgrc文件仍被咨询。这是我在tortoisehg之外的经历。

我不希望tortoisehg GUI不显示hgrc命令它不调用,只是为了不采取他们的设置。那是你所看到的吗?

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

+0

TortoiseHG的工作台有一个设置页面,它给用户的.​​hgrc文件一个gui前端,并且允许用户点击一个按钮来手动编辑它。如果我清除用户.hgrc文件的内容,Tortoise会(例如)不允许我从菜单中选取我的视觉差异工具。但是,如果我在工作台中进行视觉比较,它仍会调用我的自定义比较工具,因为它仍然定位在我坐在HGRCPATH中的.hgrc文件中。 – jontyc 2011-04-02 15:12:09

+0

因此,如果使用HGRCPATH,TortoiseHG的用户设置屏幕看起来具有零效果。 – jontyc 2011-04-02 15:22:55

+0

我想这就是我所期望的。该GUI页面(以及我从来没有使用过的)会编辑您的用户设置,并且HGRCPATH会通知Mercurial忽略您的用户设置。我感觉合理。 – 2011-04-02 19:34:13

4

是的,这必须是在TortoiseHg一大败笔。 hg help environment帮助文本说HGRCPATH用于覆盖配置文件的默认搜索路径。这包括~/.hgrc,让你快速禁止用户设置:

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

你不能让水银略过读.hg/hgrc