Шаблоны имен файлов

Mercurial понимает несколько форм задания одного или более файла единовременно.

По умолчанию Mercurial интерпретирует имена файлов как это делает командная оболочка (bash и др.), выполняя подстановку шаблонов в стиле glob.

Другая форма шаблонов должна указываться явно.

Примечание:

Шаблоны, заданные в ".hgignore", не привязаны к корневому каталогу. См. "hg help hgignore".

Чтобы использовать буквальный путь к файлу, в котором не выполняются подстановки, начните его с "path:". Такие пути должны полностью совпадать с именем файла относительно корня хранилища.

Чтобы использовать расширенный glob, начните его с "glob:". Глобы раскрываются относительно текущего каталога; глоб "*.c" совпадет только с файлами в текущем каталоге, оканчивающимися на ".c".

Поддерживается расширение обычных глобов в виде "**", которое совпадает с любой строкой в пределах всего пути, включая разделители; также поддерживается форма "{a,b}", означающая "a или b".

Чтобы использовать регулярные выражения Perl/Python, начните имя с "re:". Такие шаблоны раскрываются относительно корня хранилища.

Можно прочитать шаблоны имен из файла, используя "listfile:" или "listfile0:". Последний ожидает шаблонов, отделенных друг от друга символом NUL, в то время как первый предполагает перевод строки. Каждая прочитанная из файла строка интерпретируется как шаблон имени файла.

Все шаблоны, задаваемые в командной строке (но не с параметрами "-I" и "-X"), кромe "glob:", могут также совпасть с директориями: файлы в совпавших директориях считаются также совпавшими с шаблоном.

Примеры буквальных путей:

path:foo/bar   файл с именем bar в каталоге foo в корне хранилища
path:path:name файл или каталог с именем "path:name"

Примеры глобов:

glob:*.c       любой файл, оканчивающийся на ".c", в текущем каталоге
*.c            любой файл, оканчивающийся на ".c", в текущем каталоге
**.c           любой файл, оканчивающийся на ".c", в любом подкаталоге
               текущего каталога, включая его самого.
foo/*.c        любой файл, оканчивающийся на ".c", в каталоге foo
foo/**.c       любой файл, оканчивающийся на ".c", в любом подкаталоге
               foo, включая его самого.

Примеры regexp:

re:.*\.c$     любой файл, оканчивающийся на ".c",
               находящийся где угодно в хранилище

Примеры шаблонов из файлов:

listfile:list.txt  читать шаблоны из файла list.txt, содержащего
                   под одному шаблону на строку
listfile0:list.txt читать шаблоны из файла list.txt, содержащего
                   шаблоны, разделенные символом NULL

См. также "hg help filesets".