5

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

syntax: glob
*.txt

如何设置我的 .hgignore 文件以忽略文件名没有扩展名的文件?例如,名为foobarand的文件abracadabra应该被忽略,但foobar.cpp应该abracadabra.c被跟踪。

4

2 回答 2

9

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

syntax: regexp
^[^.]+$

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

于 2013-05-13T07:57:36.210 回答
3

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

syntax: glob
foobar
abracadabra

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

syntax: regexp
^[^.]+$

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

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

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

于 2013-05-14T11:53:48.870 回答