Как я могу игнорировать все в папке в Mercurial
Я ищу выражение для файла.hgignore, чтобы игнорировать все файлы в указанной папке.
Например: я хотел бы игнорировать все файлы и папки ниже bin
На самом деле любой совет о том, как формируются выражения, был бы отличным
6 ответов
Я провел несколько экспериментов и обнаружил, что синтаксис регулярных выражений в Windows применяется к пути, начинающемуся с текущего репозитория, с обратными слешами, преобразованными в косые черты.
Так что, если ваш репозиторий находится в E:\Dev, например, hg status
будет применять шаблоны против foo/bar/file1.c и тому подобное. Якоря применяются к этому пути.
Так:
- Glob относится к элементам пути и имеет корни в элементах
- foo соответствует любой папке (или файлу) с именем foo (не для "foobar" и не "barfoo")
- * foo * соответствует любой папке или файлу с "foo" в названии
- foo/bar* соответствует всем файлам в папке "foo", начиная с "bar"
- Regex чувствителен к регистру, а не привязан
- Конечно, обратные косые черты регулярные выражения, такие как. (Точка)
- / соответствует \ разделитель пути в Windows. \ не соответствует этому разделителю...
- foo сопоставляет все файлы и папки с "foo" внутри
- foo / соответствует только папкам, оканчивающимся на "foo"
- / foo / соответствует папке "foo" где-то в пути
- / foo / bar / соответствует папке "bar" в папке "foo" где-то в пути
- ^ foo соответствует файлу или папке, начиная с foo в корне хранилища
- foo $ соответствует файлу, оканчивающемуся на foo
Я надеюсь, что это поможет, я нашел страницу HGIGNORE(5) немного лаконичной.
Оба из них также отфильтруют каталог с именем cabin
, что может быть не то, что вы хотите. Если вы фильтруете верхний уровень, вы можете использовать:
^/bin/
За bin
каталоги ниже вашего корня, вы можете опустить ^. Нет необходимости указывать синтаксис, по умолчанию используется регулярное выражение.
Синтаксис: glob bin/**
Этот ответ показан выше, однако я также хотел бы добавить, что * и ** обрабатываются по-разному. ** рекурсивно, * нет.
Смотрите Hg Patterns
Неважно, я понял
syntax: regexp
bin\\*
выражения следуют стандартному синтаксису регулярных выражений perl.