我看了一些其他的Hg hgignore文件问题,但我还没能让我的正则表达式工作。
想象一下这些文件:
Projects/search.intrasearch/newUI/override/xslt/foo.xsl
Projects/search.intrasearch/newUI/default/
Projects/search.intrasearch/oldUI/baz/
我想忽略后两行,但不是第一行。所以,在Mercurial中,我想在newUI / override目录中包含文件,它是孩子们,但就是这样。在真实系统中,有比上面更多的目录,所以简单地排除oldUI和默认将不起作用。我需要一种包含的方法。
这适用于正则表达式工具,但不适用于Mercurial:
(?i)Projects/search\.intrasearch/(?!newUI/override).*
答案 0 :(得分:2)
我终于通过使用两个正则表达式的组合来解决这个问题:
(?i)Projects/search.*?/newUI/(?!override).*
(?i)Projects/search[^/]*/(?!newUI).*
这似乎成功地排除了任何与newUI有兄弟情谊的东西以及任何要覆盖的兄弟姐妹。