Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hg Regexp语法未按预期工作_Regex_Mercurial_Hgignore - Fatal编程技术网

Hg Regexp语法未按预期工作

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文件 有什么

以下是我的文件/文件夹结构:

代码/.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文件


有什么想法吗?

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

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

这并不是您想要的答案,但Mercurial在.hgignore文件中没有合适的语法来表示“除此之外的所有内容”(零宽度先行正则表达式不是计划中的),原因是
hg add
覆盖
.hgignore

您可以有一个
.hgignore
文件,其中只包含以下内容:

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

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