GaoWhen高H温

「文不能测字 武不能防身」

Mercurial Hg 的配置文件 hgrc

其实 hgrc 里面的配置选项是有很多的,这里只列出了目前我配置到的一些选项。

环境

这里默认说的都是 Mac 环境。

简介

用过 vi/vim 的大概一看就知道这是 Hg 的配置文件。

文件

  • 每个系统的配置文件

    • 路径 <install-root>/etc/mercurial/hgrc 或 <install-root>/etc/mercurial/hgrc.d/*.rc
  • 每个用户的配置文件

    • 路径 $HOME/.hgrc
    • 每个项目的配置文件

    • 路径 <repo>/.hg/hgrc

    • 每个项目自己的配置文件里面的配置会覆盖掉以上两个的配置。
    • 这个文件不在版本控制之内,不会随 clone 操作被传送出去,因此里面的配置信息(尤其是密码)是安全的。

语法

配置文件是由如下形式的区块(section)组成的。

[foo]
foo1 = bar1
foo2 = bar2

区块 section

alias

<alias> = <command> [<argument]...
例如设置了

[alias]
latest = log --limit 5
就可以使用 hg latest 命令来查看最近的 5 条 log。

auth

用来管理多个库的验证信息,一般会在 $HOME/.hgrc 里面设置,这样就不用每次都要输入用户名和密码了。安全起见,要确保只有自己能看到这个文件。

<name>.<argument> = <value>
例如

[auth]
vim.prefix = bitbucket.org/gaowhen/vim
vim.username = foo
vim.password = bar
vim.schemes = http https

lab.prefix = bitbucket.org/gaowhen/lab lab.username = foo lab.password = bar lab.schemes = http https

在 $HOMT/.hgrc 里面设置了 auth 之后,只需要在 <repo>/.hg/hgrc 里面设置好 paths 就可以了。改变版本库的时候,Hg 会根据不同的 prefix 来自动进行用户验证。

paths

  • default 拉取(pull)源代码时如果没有指定库,则从这里指定的目录或 URL 拉取。一般设置为当前库复制(clone)而来的库。
  • default-push 可选项。推送(push)的时候如果没指定库,则推送到这里指定的目录或 URL。

参考资料