Как я могу игнорировать все, что находится в папке в Mercurial
-
05-07-2019 - |
Вопрос
Я ищу выражение для файла .hgignore, чтобы игнорировать все файлы в указанной папке.
например:Я бы хотел игнорировать все файлы и папки под bin
На самом деле любой совет о том, как формируются выражения, был бы замечательным
Решение
Поочередно:
syntax: glob
bin/**
Другие советы
Я провел несколько экспериментов и обнаружил, что синтаксис регулярных выражений в Windows применяется к пути, начинающемуся с текущего репозитория, с обратными косыми чертами, преобразованными в косые черты.
Итак, если ваш репозиторий находится в E:\Dev, например, hg status
будет применять шаблоны к foo/bar/file1.c и тому подобному.К этому пути применяются якоря.
Итак:
- Glob применяется к элементам пути и привязан к частям элемента
- foo соответствует любой папке (или файлу) с именем foo (не "foobar" и не "barfoo").
- *foo* соответствует любой папке или файлу с "foo" в названии
- foo /bar* соответствует всем файлам в папке "foo", начинающимся с "bar"
- Регулярное выражение чувствительно к регистру, не привязано
- Конечно, специальным символам регулярного выражения с обратной косой чертой нравятся.(точка)
- / соответствует разделителю \ path в Windows.\ не соответствует этому разделителю...
- foo сопоставляет все файлы и папки с надписью "foo" внутри
- foo/ соответствует только папкам, заканчивающимся на "foo"
- /foo/ соответствует папке "foo" где-то в пути
- /foo/bar/ соответствует папке "bar" в папке "foo" где-то в пути
- ^foo соответствует файлу или папке, начинающейся с foo в корне репозитория
- foo$ соответствует файлу, заканчивающемуся на foo
Я надеюсь, что это поможет, я нашел ЗНАЧЕНИЕ (5) страница немного лаконичная.
Оба они также отфильтровывают каталог с именем cab
, который может оказаться не тем, что вам нужно. Если вы фильтруете верхний уровень, вы можете использовать:
^/bin/
Для каталогов bin
ниже вашего корня вы можете опустить ^. Нет необходимости указывать синтаксис, по умолчанию используется регулярное выражение.
Неважно, я понял
syntax: regexp
bin\\*
выражения следуют стандартному синтаксису регулярных выражений perl.
: glob бен / **
Этот ответ показан выше, однако я также хотел бы добавить, что * и ** обрабатываются по-разному. ** рекурсивно, * нет.
См. шаблоны Hg
игнорировать файлы .class
syntax: regexp
?\.class