mercurial - 使 Mercurial 存储库中的 .hgignore 可用于所有子存储库?

标签 mercurial hgignore subrepos hgrc

我有一个带有多个子存储库的 Mercurial 存储库。是否有可能只在主存储库中定义一个通用的 .hgignore 文件(例如忽略目标文件),并且可以选择在子存储库中定义一个专门的文件?

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

[ui]
ignore = .hgignore

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

有任何想法吗?

最佳答案

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

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

为什么要做ignore = .hgignore在您的全局范围内对您不起作用 .hgrc (并且不会在 repo 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
    

    关于mercurial - 使 Mercurial 存储库中的 .hgignore 可用于所有子存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7796542/

    相关文章:

    regex - Mercurial .hgignore 沮丧

    mercurial - Hg 子存储库依赖项

    mercurial - hg 显示已修改但未更改的文件,为什么会这样?

    mercurial - 防止推送添加到关闭分支的提交

    git - 如何将未压缩的文件夹视为压缩文件?

    visual-studio - 适用于 Visual Studio 2008 项目的 Mercurial .hgignore

    version-control - Tortoise Hg 未检测到在 SCM 管理器 (Mercurial) 中创建的用户

    visual-studio-2010 - Visual Studio 2010、VisualHg、不断添加 bin、obj 文件夹

    mercurial - 是否可以将 Mercurial subrepo 与特定修订版 Hook (例如 svn :externals)?

    Mercurial:我可以忽略推/拉文件但仍然提交吗? (.hgsub)