Hg Regexp语法不按预期工作



我的文件/文件夹结构如下:

代码/.hg

代码/.hgignore

代码/现金/固定

代码/现金/bin/FTI/abc.dll

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

这是我的。hgignore文件不能工作:

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

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

任何想法?

这不是你想要的答案,但是Mercurial没有为.hgignore文件中的"everything except"提供合适的语法(零宽度前看正则表达式不是计划)的原因是hg add覆盖了.hgignore

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

^CASH/

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

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

glob在这种情况下可能更容易。如果使用regexp,如何:

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

相关内容

  • 没有找到相关文章

最新更新