- .hgignore 不需要在 init 之前创建
- 如果配置文件将被其他人使用,您最好提交 .hgignore 以便其他人不必创建它,但 mercurial 不需要这样做来忽略您的本地文件(参见示例)
- 是的 .hgignore 必须在根目录中
简单的例子。
初始化回购:
$ mkdir test
$ cd test
$ hg init
创建文件
$ touch foo
$ hg st
? foo
现在在你的 repo 的根目录中创建一个 .hgignore:
$ echo 'foo' > .hgignore
foo
现在被忽略:
$ hg st
? .hgignore
请注意,不需要提交 .hgignore 即可。
有点棘手
如果在 repo 中同时提交了配置文件和 .hgignore(忽略配置文件),那么是的,配置文件更改将被跟踪(换句话说,.hgignore 将无效)
创建配置并提交
$ touch config
$ hg ci config -Am 'adding conf'
忽略它:
$ echo 'config' >> .hgignore
提交 .hgignore:
$ hg ci .hgignore -Am '.hgignore'
然后,如果您克隆存储库:
$ cd ..
$ hg clone test other-user
$ cd other-user
并修改配置:
$ echo 'new config param' >> config
然后 hg 将显示更改:
$ hg st
M config
如何处理?
您可能希望在存储库中有一个主要的默认配置文件,即版本化,global.cfg
您将要求用户创建一个local.cfg
他们将放置本地设置的位置。如果存在,您的脚本将获取local.cfg
:本地设置覆盖全局设置。当然,添加一行.hgignore
来忽略local.cfg
;)
替代方案:没有全局配置文件,只有一个config.example
用户在本地复制和修改。这里的缺点是您不会轻易跟踪版本之间的更改。