【问题标题】:How to ignore some folders in HG?如何忽略 HG 中的某些文件夹?
【发布时间】:2011-09-27 15:08:50
【问题描述】:

开始here, 我现在正在努力解决这个问题。我有两个文件夹:Source 和 SQL。源有多个项目文件夹。 Source 和 SQL 中的项目文件夹都有 bin 文件夹。我想忽略 Source 下 bin 文件夹中的所有文件,而不是 SQL 下的所有文件。我认为其中一个可能会奏效:

glob:Source\*\bin\
glob:Source\*\bin
glob:Source\*\bin\*
glob:Source\*\bin*
glob:Source*\bin\
glob:Source\*bin\

但以上所有方面都没有骰子。

看来我必须在我希望有一个 bin 文件夹的 Source 下为每个文件夹输入一行(然后在我添加新项目时更新我的​​ .hgignore 文件)。

glob:Source\Project1\bin\
glob:Source\Project2\bin\
#etc

如果不是这样,任何建议都将不胜感激。

【问题讨论】:

    标签: mercurial hgignore


    【解决方案1】:

    您是否尝试过正则表达式:

    syntax: regex
    ^Source/.*/bin
    

    另外,请记住,您已经添加的任何内容都不受忽略规则的影响,因此您需要取消跟踪文件以测试这些内容。

    最后,考虑让每个项目成为一个单独的仓库——这是 DVCS 领域的标准建议,无论是 Mercurial 还是 git。在 svn 中,同一个 repo 中的多个项目并不是一个坏主意,因为您可以将工作目录的不同部分更新为不同的修订版,但是使用 DVCS,所有文件都会更新/签出到相同的修订版,这使得放置多个项目在同一个仓库中,一般来说很麻烦,在某些情况下是一个非常糟糕的主意。

    【讨论】:

    • 我会做一些调整,第一个只是个人喜好。在对 hgignore 文件进行了相当多的处理之后,我发现在与模式相同的行上声明语法最适合进行大量编辑。此外,将来可能需要使 bin 中的 b 不区分大小写。最后,在末尾添加一个斜线以防止名为 binSomething 的文件夹被捕获。但我喜欢 Source 之后的斜线和行标记的开头。我无法验证这是否可以立即使用,但这似乎是最佳选择:re:^Source/.*/[Bb]in/ 谢谢!
    【解决方案2】:

    查看我的 .hgignore 文件,我的斜杠似乎是相反的(正斜杠而不是反斜杠)。即:

    glob:*/bin/*
    

    试试看?

    【讨论】:

    • 关闭,但这将忽略 SQL 和 Source 中的 bin 文件夹。是否有一个 glob 命令会忽略某些文件夹中的 bin 文件夹而不忽略其他文件夹?这也不起作用:glob:Source/*/bin/*
    • 不,这些都不起作用,因为我在 Source 下的项目文件夹下有 bin 文件夹:Source/Project1/bin、Source/Project2/bin、Source/some/path/that/is/arbitrarily/long /bin等
    • 道歉,我误读了这个问题,我创建了一个名为“Test”的文件夹,其中有一个名为“hello”的文本文件,还有另一个名为 bin 的文件夹,其中有一个名为“Ignore”的文本文件.以下对我有用: glob:Test/*/bin/* (你好在提交中可见,而忽略不可见)。我正在使用乌龟 HG v2.05。我看到这与您在第一条评论中发布的内容相同,因此不确定为什么它对您不起作用。你在用乌龟汞吗?
    • 嗯,这很奇怪,它适用于你而不是我。我正在使用 tortoiseHg 2.1.3(在 64 位 Vista 上,如果这有什么不同的话)。无论如何,我找到了一个可以解决问题的正则表达式:re:Source.*/[Bb]in/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2011-06-20
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2016-02-13
    相关资源
    最近更新 更多