Игнорировать файлы в Mercurial, используя синтаксис Glob - PullRequest
11 голосов
/ 22 июля 2010

Я использую Mercurial, и у меня следующая структура:

files
   test
       demo.jpg
       video.flv
       video.doc

   sport
       demo2.jpg
       picture.jpg
       text.txt
demo3.jpg
demofile3.doc

Я хочу создать глобальный фильтр, который игнорирует только все файлы "jpg" во всех каталогах, которые являются потомками каталога "files"

Я пытался с файлами / *. Jpg, но это не работает.

Любой совет будет оценен.

Ответы [ 3 ]

16 голосов
/ 22 июля 2010

Регулярное выражение


Это работает для меня ..

syntax: regexp
files/.*/.*jpg


Ваше собственное решение больше похоже на шар. Хитрость в том, чтобы использовать синтаксис ** для учета подкаталогов. Видеть это ...

Глобус раствор


Этот шар у меня тоже работает

**/files/**/*.jpg


Комментарии

Лично я бы всегда использовал glob syntx для решения подобных проблем. Как только вы узнаете о синтаксисе **, будет легче, чем регулярное выражение, следовать тому, что пытается сделать шаблон.

11 голосов
/ 22 июля 2010

Если вы счастливы игнорировать «все файлы JPG внутри любого каталога с именем files», тогда используйте

syntax: glob
files/**.jpg

См. hg help patterns, который объясняет, что ** является оператором glob, который охватывает каталогсепараторы.Это означает, что файл

 files/test/demo.jpg

соответствует files/**.jpg.

Однако обратите внимание, что шаблоны глобуса имеют , а не с корневым .Это означает, что файл с именем

 test/files/demo.jpg

также будет игнорироваться, поскольку он соответствует шаблону после удаления префикса test/.

Вам необходимо использовать регулярное выражение, если вас это беспокоитс этим.В этом синтаксисе шаблон гласит:

syntax: regex
^files/.*\.jpg

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

0 голосов
/ 22 июля 2010

Должен ли это быть синтаксис glob?Если вы используете синтаксис регулярных выражений, files/.*\.jpg должно работать.

...