配置 Mercurial

作者:Steve Losh
日期:2009-09-30

学习将 Mercurial 配置成你所喜欢的样子。

几个看起来普通又过时的文本文件控制着 Mercurial 的运作,让我们来瞧瞧它们到底长个什么样和怎样干活的。

配置文件格式

Mercurial 的配置文件分为很多段,每段各有一些字段。比如说:

[ui]
username = Steve Losh <steve@stevelosh.com>
editor = vim

[alias]
killitwithfire = revert --no-backup --all

这个示例文件分为两段: [ui][alias][ui] 段有两个字段而 [alias] 有一个字段。等号的左边是字段名,右边则是字段值。

你可以使用任意你喜欢的文本编辑器来编辑配置文件。

配置文件级别

你每次运行 Mercurial 的时候它都会去查找一些位于不同位置的配置文件,并且应用它所找到的 所有 文件的设置。“特定的”配置文件设置会覆盖“全局的”配置文件设置。而接下来我们将会说明“特定的”与“全局的”的意义。

“安装级的”与“系统级的”配置文件

这是你能够找到的最“全局的”配置文件,这些文件里的每个设置都会应用于每一个用户以及任意目录。

你可能几乎不会用到它们,除非你是个多用户系统的管理员。这里,我们先无视它们。但如果你想要了解更多的话,可以去看看 使用手册 [hgrc-man]。

“用户级的”配置文件

在一个系统上,每个用户都用有它们各自的 Mercurial 配置文件。这些文件是比安装级的和系统级的文件来说更“特定的”配置文件,并且也是你大部分时间都会用到的配置文件。

在 UNIX, Linux, OS X 系统上你的个人配置文件位于 $HOME/.hgrc (又称 ~/.hgrc)。

而在 Windows 上它可以是下面的任一文件(你可以选择一个你喜欢的位置并创建它):

%HOME%\Mercurial.ini
%HOME%\.hgrc
%USERPROFILE%\Mercurial.ini
%USERPROFILE%\.hgrc

这个文件中的设置将会覆盖安装级和系统级的配置文件中段和名字皆相同的设置。

作为一名用户,你可以将所有用户特定的设置放到这里。例如:

[ui]
username = Your Name <your@email.com>
editor = your_favorite_editor_command

[extensions]
... 任意你喜欢使用的扩展 ...

[alias]
... 任意你觉得方便的别名 ...

“代码库级的”配置文件

这是最“特定的”配置文件,并且它们内部的设置只适用于它们属于的代码库中的运行的命令。

代码库级的配置文件通常位于: [代码库路径]/.hg/hgrc 。注意,这里的 hgrc 前面并 没有点 !

为什么你会想要给一个单独的代码库配置设置呢?一个通常的解释是,当向一个特殊的代码库做提交时你可能会想使用一个不同的邮件地址。

可能你的用户级的配置文件包含像下面这样的内容:

[ui]
username = Your Name <you@personal.com>

但是对于一个特定的库你可能想要用你的工作邮箱,所以你可以将下面的内容放到那个代码库的 [代码库路径]/.hg/hgrc 文件之中:

[ui]
username = Your Name <you@work.com>

现在当你向这个代码库进行提交时将会使用到你的工作邮箱地址,因为代码库级的配置文件比用户级的配置文件更特化并会覆盖它。

Mercurial 配置安全

当你越来越深入使用 Mercurial 之后,可能会碰到像这么一条错误信息:

Not trusting file /home/alice/repo/.hg/hgrc from untrusted user alice, group users

这条信息出现时,Mercurial 是试图告诉你一个使用中的 hgrc 文件被其拥有者进行了恶意修改。

想了解更多有关这个状况你可以到 Mercurial 维基上的 Trust 页面看看。

更多信息

本贴士仅仅向你展示了在哪找到配置文件以及怎样修改它们。 你可以从 hgrc 使用手册 了解到更多的相关信息。