0

我查看了一些其他 Hg hgignore 文件问题,但我无法让我的正则表达式工作。

想象一下这些文件:

Projects/search.intrasearch/newUI/override/xslt/foo.xsl
Projects/search.intrasearch/newUI/default/
Projects/search.intrasearch/oldUI/baz/

我想忽略后两行,但不是第一行。所以,在 Mercurial 中,我想在 newUI/override 目录中包含文件,它是子目录,但仅此而已。在实际系统中,目录比上面多了很多,所以简单地排除oldUI和default是行不通的。我需要一种包容的方法。

这适用于正则表达式工具,但不适用于 Mercurial:

(?i)Projects/search\.intrasearch/(?!newUI/override).*

4

1 回答 1

2

我终于通过使用两个正则表达式的组合来解决这个问题:

(?i)Projects/search.*?/newUI/(?!override).*
(?i)Projects/search[^/]*/(?!newUI).*

这似乎成功地排除了任何与 newUI 同级的东西以及任何要覆盖的同级。

于 2012-01-25T02:29:32.287 回答