Mercurial 可以配置为忽略文件名具有特定扩展名的文件。例如,可以通过将*.txt
添加到~/.hgignore
来忽略syntax: glob
*.txt
个文件。
foobar
如何设置.hgignore文件以忽略文件名无扩展名的文件?例如,应忽略名为abracadabra
和foobar.cpp
的文件,但应跟踪abracadabra.c
和{{1}}。
答案 0 :(得分:8)
请使用regexp
语法,因为glob
无法使用<{1}}:
syntax: regexp
^[^.]+$
PS:您可以在syntax: glob
部分
答案 1 :(得分:3)
如果您有一小部分没有扩展名的文件要忽略,那么您只需将它们列为glob模式:
syntax: glob
foobar
abracadabra
如果你想忽略没有扩展名的所有文件,那么事情会变得更加困难。如果您使用zerkms提供的正则表达式,
syntax: regexp
^[^.]+$
然后你也会忽略没有“扩展名”的目录,即名称中没有.
的目录,例如src
,等等。
因为Mercurial在遍历您的工作副本时自上而下匹配文件和目录,并且因为它与.hgignore
文件中的模式匹配时不区分文件和目录,所以不能包含目录,同时忽略具有相同名称的文件。
(您可以模拟相反的情况:通过忽略regexp语法中的foobar/
,您最终会忽略foobar/
内的所有文件,而不会忽略另一个目录中名为foobar
的文件。)