it-swarm.com.ru

Как я могу игнорировать все, что в папке в Mercurial

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

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

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

147
Xian

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

syntax: glob
bin/**
165
Ry4an Brase

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

50
PhiLho

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

^/bin/

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

8
Derek Slager

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

syntax: regexp
bin\\*

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

2
Xian

синтаксис: glob bin/**

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

Смотрите Hg Patterns

0
balrob

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

syntax: regexp
?\.class
0
user2427