Как я могу игнорировать все в папке в Mercurial - PullRequest
147 голосов
/ 31 октября 2008

Я ищу выражение для файла .hgignore, чтобы игнорировать все файлы в указанной папке.

Например: я хотел бы игнорировать все файлы и папки ниже bin

На самом деле любой совет о том, как формируются выражения, был бы великолепен

Ответы [ 6 ]

166 голосов
/ 01 ноября 2008

С другой стороны:

syntax: glob
bin/**
50 голосов
/ 06 декабря 2008

Я провел несколько экспериментов и обнаружил, что синтаксис регулярных выражений в Windows применяется к пути, начинающемуся с текущего хранилища, с обратными слешами, преобразованными в косые черты.

Так, например, если ваш репозиторий находится в E: \ Dev, hg status будет применять шаблоны к foo / bar / file1.c и тому подобное. Якоря применяются к этому пути.

Итак:

  • Глобус применяется к элементам пути и имеет корни в элементах
  • 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) немного лаконичной.

8 голосов
/ 01 ноября 2008

Оба из них также отфильтруют каталог с именем cabin, который может оказаться не тем, что вам нужно. Если вы фильтруете верхний уровень, вы можете использовать:

^/bin/

Для bin каталогов ниже вашего корня, вы можете опустить ^. Нет необходимости указывать синтаксис, по умолчанию используется регулярное выражение.

2 голосов
/ 31 октября 2008

Неважно, я понял

syntax: regexp
bin\\*

выражения следуют стандартному синтаксису регулярных выражений perl.

0 голосов
/ 15 ноября 2016

синтаксис: glob бен / **

Этот ответ показан выше, однако я также хотел бы добавить, что * и ** обрабатываются по-разному. ** рекурсивно, * нет.

См. Hg Patterns

0 голосов
/ 21 ноября 2008

игнорировать файлы .class

syntax: regexp
?\.class
...