我正在寻找一种方法来修改我的 .hgignore 文件以忽略所有“Properties/AssemblyInfo.cs”文件,但“Test/”或“Tests/”子文件夹中的文件除外。
我尝试使用否定的look-behind 表达式
(?<!Test)/Properties/AssemblyInfo\.cs$
,但我没有找到在文件夹“Test/”和“Tests/”中“取消忽略”的方法。
我正在寻找一种方法来修改我的 .hgignore 文件以忽略所有“Properties/AssemblyInfo.cs”文件,但“Test/”或“Tests/”子文件夹中的文件除外。
我尝试使用否定的look-behind 表达式
(?<!Test)/Properties/AssemblyInfo\.cs$
,但我没有找到在文件夹“Test/”和“Tests/”中“取消忽略”的方法。
Python 不支持可变长度的lookbehind。
但\b(?<!Test)(?<!Tests)/Properties/AssemblyInfo\.cs$
应该工作。
只是为了让任何未来的搜索者都能看到它:只有在您希望将来将更多异常文件添加到工作目录时,才需要像这样的正则表达式扭曲。
如果你只想让当前的例外,你可以只是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
,但如果您每天创建新的,那么正则表达式绝对是要走的路。
通常你会这样做Tests?
,但由于取决于正则表达式引擎,不允许动态后视,你可以简单地使用两个分支:
(?<!Test|Tests)/Properties/AssemblyInfo\.cs$