我有一个NetBeans项目,Mercurial存储库位于项目根目录中。我希望它忽略除“src”和“test”文件夹以及.hgignore本身的内容之外的所有内容。
我不熟悉正则表达式,也无法想出那样做。
我试过的那些:
(?SRC /.*)
(?测试/.*)
(?!^。hgignore)
(?SRC / |。测试/. | .hgignore)
这些似乎忽略了一切,我无法弄清楚原因。
任何建议都会很棒。
答案 0 :(得分:7)
这似乎有效:
syntax: regexp ^(?!src|test|\.hgignore)
这基本上是你的最后一次尝试,但是:
^
和第二点很重要,因为the manual说:
例如,假设我们的存储库中的/ b / file.c中有一个未跟踪的文件file.c.如果.hgignore中的任何模式与/ b / file.c,a / b或a匹配,Mercurial将忽略file.c。
因此,您的模式必须不匹配src
。
答案 1 :(得分:3)
^(?!src\b|test\b|\.hgignore$).*$
应该有效。它匹配任何不以单词src
或test
开头的字符串,或完全由.hgignore
组成。
它使用单词边界锚\b
来确保testtube.txt
或srcontrol.txt
等文件不会意外匹配。但是,它会像src.txt
这样的文件“失火”,其中除了斜杠之外还有一个单词边界。