Hg Regexp语法未按预期工作
以下是我的文件/文件夹结构: 代码/.hg Code/.hgignore 代码/CASH/readme.txt 代码/CASH/bin/FTI/abc.dll 我正在尝试在.hgignore文件中创建一个正则表达式,它将忽略CASH文件夹下的所有内容,但/bin/FTI文件夹中的所有内容除外 这是我的.hgignore文件,它不起作用:Hg Regexp语法未按预期工作,regex,mercurial,hgignore,Regex,Mercurial,Hgignore,以下是我的文件/文件夹结构: 代码/.hg Code/.hgignore 代码/CASH/readme.txt 代码/CASH/bin/FTI/abc.dll 我正在尝试在.hgignore文件中创建一个正则表达式,它将忽略CASH文件夹下的所有内容,但/bin/FTI文件夹中的所有内容除外 这是我的.hgignore文件,它不起作用: syntax: regexp CASH/(?!bin/FTI/).* 这会忽略CASH文件夹中的所有内容,包括我不想忽略的/bin/abc.dll文件 有什么
syntax: regexp
CASH/(?!bin/FTI/).*
这会忽略CASH文件夹中的所有内容,包括我不想忽略的/bin/abc.dll文件
有什么想法吗?glob在这种情况下可能更容易。如果使用regexp,那么:
syntax: regexp
CASH/(?!bin)
CASH/bin/(?!FTI)
这并不是您想要的答案,但Mercurial在.hgignore文件中没有合适的语法来表示“除此之外的所有内容”(零宽度先行正则表达式不是计划中的),原因是
hg add
覆盖.hgignore
您可以有一个.hgignore
文件,其中只包含以下内容:
^CASH/
然后一次性执行hg add CASH/bin/FTI/**
,您将跟踪该目录中已存在的所有文件的所有未来更改
当然,如果一个新的二进制文件出现在CASH/bin/FTI中,您必须记住添加它,但是对已经添加的二进制文件的更改不需要任何额外的操作。除非经常出现具有新名称的二进制文件,否则这是更常见的设置