Игнорировать файлы в Mercurial, используя синтаксис Glob
Я использую Mercurial, и у меня есть следующая структура:
files
test
demo.jpg
video.flv
video.doc
sport
demo2.jpg
picture.jpg
text.txt
demo3.jpg
demofile3.doc
Я хочу сделать фильтр glob, который игнорирует только все файлы "jpg" во всех каталогах, которые являются дочерними элементами каталога "файлы"
Я пробовал файлы /*. jpg, но он не работает.
Любые советы будут оценены.
Ответы
Ответ 1
Решение Regexp
Это работает для меня..
syntax: regexp
files/.*/.*jpg
Ваше собственное решение больше похоже на глобус. Хитрость заключается в использовании синтаксиса ** для подкаталогов. Видеть это...
Решение Glob
Этот глобус тоже работает для меня.
**/files/**/*.jpg
Комментарии
Лично я всегда шел с синтаксисом glob для этой проблемы. Когда вы знаете о синтаксисе **, проще, чем регулярное выражение, следовать тому, что пытается сделать шаблон.
Ответ 2
Если вы с удовольствием проигнорируете "все файлы JPG в любом каталоге с именем files
", используйте
syntax: glob
files/**.jpg
См. hg help patterns
, в котором объясняется, что **
является оператором glob, который охватывает разделители каталогов. Это означает, что файл
files/test/demo.jpg
соответствует files/**.jpg
.
Однако обратите внимание, что шаблоны glob не привязаны не. Это означает, что файл с именем
test/files/demo.jpg
также игнорируется, так как он соответствует шаблону после удаления префикса test/
.
Вам нужно использовать регулярное выражение, если вы заинтересованы в этом. В этом синтаксисе шаблон читает
syntax: regex
^files/.*\.jpg
Обычно я не беспокоюсь о том, чтобы укоренять шаблон - я предпочитаю простоту шаблонов глобусов. Но приятно знать, что вы можете запустить шаблон игнорирования, если вам действительно нужно.
Ответ 3
Должен ли быть синтаксис glob? Если вы используете синтаксис regex, files/.*\.jpg
должен работать.