我的文件/文件夹结构如下:
代码/.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)