7

我有一个 NetBeans 项目,Mercurial 存储库位于项目根目录中。我希望它忽略除“src”和“test”文件夹的内容以及 .hgignore 本身之外的所有内容。

我不熟悉正则表达式,也想不出一个能做到这一点的表达式。

我试过的那些:

(?!src/.*)

(?!测试/。*)

(?!^.hgignore)

(?!src/. |test/. |.hgignore)

这些似乎忽略了一切,我不知道为什么。

任何建议都会很棒。

4

2 回答 2

7

这似乎有效:

语法:正则表达式

^(?!src|测试|\.hgignore)

这基本上是您的最后一次尝试,但是:

  • 它植根于字符串的开头,带有^, 和
  • 它不需要目录名称的尾部斜杠。

第二点很重要,因为正如手册所说:

例如,假设我们在存储库中的 a/b/file.c 中有一个未跟踪的文件 file.c。如果 .hgignore 中的任何模式匹配 a/b/file.c、a/b 或 a,Mercurial 将忽略 file.c。

所以你的模式不能匹配src

于 2010-03-31T20:58:12.283 回答
3
^(?!src\b|test\b|\.hgignore$).*$

应该管用。它匹配任何不以单词srcor开头test或完全由 组成的字符串.hgignore

它使用单词边界锚\b来确保文件喜欢testtube.txtsrcontrol.txt不会意外匹配。但是,它会在文件上“失火”,例如src.txt在斜线之前存在单词边界的位置。

于 2010-03-31T20:56:39.110 回答