5

我有一个带有多个子存储库的 Mercurial 存储库。是否有可能只在主存储库和子存储库中定义一个通用的 .hgignore 文件(例如忽略对象文件)?

手册中没有足够的信息。指定一个 .hgignore 文件

[ui]
ignore = .hgignore

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

有任何想法吗?

4

1 回答 1

3

每个子存储库中的一个.hgignore文件将作为该子存储库的专用文件。.hgignore然后,您可以通过将其包含在每个子存储库的hgrc文件中来使用主存储库作为主要存储库:

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

do 在你的全局(并且不会在 repo 中)ignore = .hgignore对你不起作用的原因是,它只是一个相对文件路径,它对绝对路径的解析取决于调用时使用的当前工作目录。例子:.hgrchgrc.hgignorehg

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

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

[ui]
ignore = ~\.hgignore
于 2011-10-17T19:12:37.090 回答