0

这是我的文件/文件夹结构:

代码/.hg

代码/.hgignore

代码/CASH/readme.txt

代码/CASH/bin/FTI/abc.dll

我试图在我的 .hgignore 文件中创建一个正则表达式,它将忽略 CASH 文件夹下的所有内容,除了 /bin/FTI 文件夹中的所有内容。

这是我的 .hgignore 文件不起作用:

syntax: regexp
CASH/(?!bin/FTI/).*

这最终会忽略 CASH 文件夹中的所有内容,包括我不想忽略的 /bin/abc.dll 文件。

有任何想法吗?

4

2 回答 2

1

这并不完全是您正在寻找的答案,但 Mercurial 在 .hgignore 文件中对“除此之外的所有内容”没有合适的语法(零宽度前瞻正则表达式不是计划)的原因是因为hg addoverrides .hgignore

你可以有一个.hgignore文件,里面只有这个:

^CASH/

然后执行一次hg add CASH/bin/FTI/**,您将跟踪该目录中已存在的所有文件的所有未来更改。

当然,如果新的二进制文件出现在 CASH/bin/FTI 中,您必须记得添加它,但对已添加的二进制文件进行更改不需要任何额外操作。除非具有新名称的二进制文件经常出现,否则这是更常见的设置。

于 2011-10-13T01:33:41.050 回答
0

在这种情况下, glob 可能更容易。如果使用正则表达式,如何:

syntax: regexp
CASH/(?!bin)
CASH/bin/(?!FTI)
于 2011-10-12T22:39:03.827 回答