3

我正在寻找一种方法来修改我的 .hgignore 文件以忽略所有“Properties/AssemblyInfo.cs”文件,但“Test/”或“Tests/”子文件夹中的文件除外。

我尝试使用否定的look-behind 表达式 (?<!Test)/Properties/AssemblyInfo\.cs$,但我没有找到在文件夹“Test/”和“Tests/”中“取消忽略”的方法

4

3 回答 3

2

Python 不支持可变长度的lookbehind。

\b(?<!Test)(?<!Tests)/Properties/AssemblyInfo\.cs$应该工作。

于 2010-03-25T13:30:35.387 回答
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,但如果您每天创建新的,那么正则表达式绝对是要走的路。

于 2010-03-25T14:17:46.890 回答
0

通常你会这样做Tests?,但由于取决于正则表达式引擎,不允许动态后视,你可以简单地使用两个分支:

(?<!Test|Tests)/Properties/AssemblyInfo\.cs$

于 2010-03-25T12:50:33.973 回答