如果我说hg show $REV some_path -I're:.*included' -X're:.*excluded'
,这究竟是什么意思? some_path
如何与--include
模式相互作用? --exclude
模式怎么样?
文件匹配是针对三个定义的集合完成的:匹配(some_path
),包括(re:.*included
)和排除(re:.*excluded
)。最终匹配的文件集是匹配的交集,包括,减去排除;例如,(M /\ I) - E
。多个匹配/包含/排除组合在一起。
因此,例如,上面的示例匹配some_path/included
但不匹配included
(因为some_path
与此路径不匹配)。但是,如果您改为编写-Isome_path -I.*included
,那么将包含some_path
(因为include集合将这两者组合在一起。)净效果是您可以使用--include
过滤掉与任何包含模式不匹配的匹配。
Mercurial特殊情况下没有匹配(即匹配所有内容)以及没有包含或排除(包括所有内容,不包括任何内容)时的情况。