Что означает несколько флагов --include / - exclude в Mercurial - PullRequest
2 голосов
/ 14 марта 2019

Если я скажу hg show $REV some_path -I're:.*included' -X're:.*excluded', что именно это означает? Как some_path взаимодействует с шаблоном --include? Как насчет шаблона --exclude?

1 Ответ

3 голосов
/ 14 марта 2019

Сопоставление файлов выполняется в отношении трех определенных наборов: совпадения (some_path), включения (re:.*included) и исключения (re:.*excluded). Набор окончательно сопоставленных файлов является пересечением совпадений и включает в себя минус исключений; например, (M /\ I) - E. Несколько совпадений / включений / исключений объединяются.

Так, например, приведенный выше пример соответствует some_path/included, но не included (потому что some_path не соответствует этому пути). Однако, если вы вместо этого напишите -Isome_path -I.*included, тогда будет включен some_path (потому что набор включений объединил эти два вместе.) Чистый эффект состоит в том, что вы можете использовать --include, чтобы отфильтровать совпадения, которые не совпадают любой из включенных шаблонов.

В особых случаях Mercurial возникает ситуация, когда нет совпадений (что означает совпадение всего) и когда нет включений или исключений (включать все, исключать ничего).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...