在Mercurial存储库中创建.hgignore可用于所有子服务器吗?

时间:2011-10-17 16:14:33

标签: mercurial hgignore subrepos hgrc

我有一个包含多个子版本的Mercurial存储库。是否有可能只在主存储库中定义一般的.hgignore-File(例如忽略对象文件),并且可选地在子存储库中定义一个专门的文件?

手册中没有足够的信息。使用

指定.hgignore文件
[ui]
ignore = .hgignore

到我的主目录中的.hgrc也不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

每个子参数中的.hgignore文件将作为该子参数的专用文件。然后,您可以将主仓库.hgignore作为主要仓库,将其包含在每个子报表的hgrc文件中:

[ui]
ignore.main = \absolute\path\to\mainrepo\.hgignore

在您的全局ignore = .hgignore(并且不会在回复.hgrc中)执行hgrc不起作用的原因是简单地.hgignore是一个相对文件路径及其对绝对路径的解析取决于调用hg时使用的当前工作目录。例子:

  • 如果您在\repos\main\并调用hg st,则会查找\repos\main\.hgignore。如果您调用hg st -R nested,则相同,因为当前工作目录仍然相同。
  • 但如果你在\repos\main\nested\然后调用hg st,则配置现在会查看\repos\main\nested\.hgignore

如果要指定主目录中的全局.hgignore,则需要使用非相对路径(或至少更少相对路径)指定它:

[ui]
ignore = ~\.hgignore