【发布时间】:2013-05-07 04:50:15
【问题描述】:
Mercurial 可以配置为忽略 文件名具有特定扩展名的文件。例如,*.txt 文件可以通过将其添加到 ~/.hgignore 来忽略:
syntax: glob
*.txt
如何设置我的 .hgignore 文件以忽略文件名无扩展名的文件?例如,应忽略名为 foobar 和 abracadabra 的文件,但应跟踪 foobar.cpp 和 abracadabra.c。
【问题讨论】:
Mercurial 可以配置为忽略 文件名具有特定扩展名的文件。例如,*.txt 文件可以通过将其添加到 ~/.hgignore 来忽略:
syntax: glob
*.txt
如何设置我的 .hgignore 文件以忽略文件名无扩展名的文件?例如,应忽略名为 foobar 和 abracadabra 的文件,但应跟踪 foobar.cpp 和 abracadabra.c。
【问题讨论】:
改用regexp 语法,因为glob 不可能:
syntax: regexp
^[^.]+$
PS:您可以在 syntax: glob 部分之后添加它
【讨论】:
如果您想忽略一小部分没有扩展名的文件,那么您可以将它们列为 glob 模式:
syntax: glob
foobar
abracadabra
如果您想忽略所有没有扩展名的文件,那么事情就会变得更加困难。如果你使用zerkms提供的正则表达式,
syntax: regexp
^[^.]+$
那么您还将忽略没有“扩展名”的目录,即名称中没有. 的目录,例如src,等等。
因为 Mercurial 在遍历您的工作副本时自上而下匹配文件和目录,并且在匹配 .hgignore 文件中的模式时不区分文件和目录,所以您不能包含一个目录,而忽略同名的文件。
(您可以模拟相反的情况:通过在正则表达式语法中忽略foobar/,您最终会忽略foobar/ 中的所有文件,而不会忽略另一个目录中名为foobar 的文件。)
【讨论】: