在我的.hgignore文件中,我试图忽略所有生成的xll文件。我(不幸的是)在存储库的域中有一个名为“xll”的目录,而我 not 想要忽略该目录本身。
我试过了:
syntax: regex
\.xll$
我认为应该是“匹配所有以'.xll'结尾的内容” 和
syntax: regex
*.\.xll$
我认为这应该意味着“匹配所有至少有一个任意字符,然后是'.xll'”。
使用上述任一方法,目录不会被忽略(yay),但也不是文件foobar.xll(darn)。如果我使用带有正则表达式的“xll”,或带有glob的“* .xll”,两者,则忽略目录和文件。
这是在Linux(Ubuntu 10.04.4)中使用hg 2.6(TortoiseHG 2.8)(我通过“X”图标的存在或不存在来观察Nautilus中的效果)。
提前致谢!
EDIT (在这里添加评论,因为它们太长而无法放入评论......) 感谢所有的回复。事实证明我误解了一些事情。所以: - 因为我使用了“正则表达式”而不是“regexp”(并且我在文件顶部有“glob”),无论我在“xll”引用的行上放置的是“glob”,所以该行确实有一种效果(这使我错误地认为“语法:正则表达式”行正在做我认为的那样 - 巧合的是,我的“xll”目录中的所有文件都被.hgignore中的其他行过滤掉了(因为它们应该已经过滤),而不是“* .xll”行 - 因此,在Nautilus中,xll目录被标记为“被忽略”,不是因为过滤器忽略了整个目录,而是因为其他过滤器正在过滤该目录中的所有文件
底线,我在“syntax:glob”下的* .xll实际上是根据需要精确过滤掉文件。 Nautilus的反馈与我预期的不同。
答案 0 :(得分:2)
它是.*\.xll$
,而不是*.\.xll$
。
答案 1 :(得分:1)
使用glob语法对我很有用:
syntax: glob
*.xll
当我使用未跟踪的文件创建名为xll
的目录时,我仍然会在hg status
的输出中看到该文件:
$ mkdir xll
$ touch a.xll x.txt xll/b.xll xll/y.txt
$ echo 'syntax: glob\n*.xll' > .hgignore
$ hg status
? .hgignore
? x.txt
? xll/y.txt
将\.xll$
与syntax: regexp
一起使用对我来说也很有用。