Сопоставление файлов выполняется в отношении трех определенных наборов: совпадения (some_path
), включения (re:.*included
) и исключения (re:.*excluded
). Набор окончательно сопоставленных файлов является пересечением совпадений и включает в себя минус исключений; например, (M /\ I) - E
. Несколько совпадений / включений / исключений объединяются.
Так, например, приведенный выше пример соответствует some_path/included
, но не included
(потому что some_path
не соответствует этому пути). Однако, если вы вместо этого напишите -Isome_path -I.*included
, тогда будет включен some_path
(потому что набор включений объединил эти два вместе.) Чистый эффект состоит в том, что вы можете использовать --include
, чтобы отфильтровать совпадения, которые не совпадают любой из включенных шаблонов.
В особых случаях Mercurial возникает ситуация, когда нет совпадений (что означает совпадение всего) и когда нет включений или исключений (включать все, исключать ничего).