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提供的regexp,
syntax: regexp
^[^.]+$
那么你也会忽略目录没有"扩展名",即目录没有.
在他们的名字,如src
,等等。
因为Mercurial在遍历工作副本时自上而下地匹配文件和目录,并且因为它在匹配.hgignore
文件中的模式时不区分文件和目录,所以不能在包含目录的同时忽略同名的文件。
(您可以模拟相反的情况:通过在regexp语法中忽略foobar/
,您最终会忽略foobar/
中的所有文件,而不会忽略另一个目录中名为foobar
的文件)