我有一个包含多个子版本的Mercurial存储库。是否有可能只在主存储库中定义一般的.hgignore-File(例如忽略对象文件),并且可选地在子存储库中定义一个专门的文件?
手册中没有足够的信息。使用
指定.hgignore文件[ui]
ignore = .hgignore
到我的主目录中的.hgrc也不起作用。
有什么想法吗?
答案 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