【问题标题】:How to hg ignore filename with no extension?如何忽略没有扩展名的文件名?
【发布时间】:2013-05-07 04:50:15
【问题描述】:

Mercurial 可以配置为忽略 文件名具有特定扩展名的文件。例如,*.txt 文件可以通过将其添加到 ~/.hgignore 来忽略:

syntax: glob
*.txt

如何设置我的 .hgignore 文件以忽略文件名无扩展名的文件?例如,应忽略名为 foobarabracadabra 的文件,但应跟踪 foobar.cppabracadabra.c

【问题讨论】:

    标签: mercurial hgignore


    【解决方案1】:

    改用regexp 语法,因为glob 不可能:

    syntax: regexp
    ^[^.]+$
    

    PS:您可以在 syntax: glob 部分之后添加它

    【讨论】:

      【解决方案2】:

      如果您想忽略一小部分没有扩展名的文件,那么您可以将它们列为 glob 模式:

      syntax: glob
      foobar
      abracadabra
      

      如果您想忽略所有没有扩展名的文件,那么事情就会变得更加困难。如果你使用zerkms提供的正则表达式,

      syntax: regexp
      ^[^.]+$
      

      那么您还将忽略没有“扩展名”的目录,即名称中没有. 的目录,例如src,等等。

      因为 Mercurial 在遍历您的工作副本时自上而下匹配文件和目录,并且在匹配 .hgignore 文件中的模式时不区分文件和目录,所以您不能包含一个目录,而忽略同名的文件。

      (您可以模拟相反的情况:通过在正则表达式语法中忽略foobar/,您最终会忽略foobar/ 中的所有文件,而不会忽略另一个目录中名为foobar 的文件。)

      【讨论】:

        猜你喜欢
        • 2011-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多