我正在寻找一种方法来修改我的.hgignore文件,以忽略除“Test /”或“Tests /”子文件夹中的所有“Properties / AssemblyInfo.cs”文件。
我尝试使用负面的后视表达式
(?<!Test)/Properties/AssemblyInfo\.cs$
,但我在两个文件夹“Test /”和“Tests /".
答案 0 :(得分:2)
Python不支持可变长度的lookbehind。
但是\b(?<!Test)(?<!Tests)/Properties/AssemblyInfo\.cs$
应该有效。
答案 1 :(得分:2)
只是为了让未来的搜索者能够做到这一点:只有当你希望将来有更多的异常文件添加到工作目录时,才需要像这样的正则表达式扭曲。
如果您只想制作当前的例外,则可以hg add
。与svn和cvs不同,在mercurial中,您可以add
一个被忽略的文件,它会覆盖.hgignore
- 将自动跟踪未来的更改。
在您的.*
文件中.hgignore
然后hg add
要跟踪的文件并非闻所未闻。
在这种情况下,更传统的mercurial方式是这样的.hgignore
文件:
/Properties/AssemblyInfo\.cs
接下来是:
$ hg add Test/Properties/AssemblyInfo.cs
$ hg add Tests/Properties/AssemblyInfo.cs
如果您有数百个测试和测试,则可以使用find
添加它们,但如果您每天创建新的测试和测试,那么正则表达式绝对是可行的方法。
答案 2 :(得分:0)
通常你只做Tests?
,但由于依赖regexp引擎,不允许使用动态后视,你可以简单地使用两个分支:
(?<!Test|Tests)/Properties/AssemblyInfo\.cs$