Mercurial可以配置为忽略文件名具有特定扩展名的文件。例如,*.txt
可以通过将其添加到以下内容来忽略文件~/.hgignore
:
syntax: glob
*.txt
如何设置我的 .hgignore 文件以忽略文件名没有扩展名的文件?例如,名为foobar
and的文件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
。)