Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
hgbook.pdf
Скачиваний:
50
Добавлен:
17.03.2015
Размер:
3.15 Mб
Скачать

Имена файлов и шаблоны совпадений

Как видно выше, некоторые команды обычно выводят относительные имена от корня репозитория, даже если вы выполняете их в подкаталоге. Этаже команда напечатает имена файлов относительно вашего подкаталога, если вы дадите ей явные имена. Давайте выполним hg status из подкаталога и заставим ее работать со всем рабочим каталогом, печатая имена файлов относительно нашего подкаталога, передав ей вывод команды hg root.

$ hg status

A COPYING

A README

A examples/simple.py

?MANIFEST.in

?examples/performant.py

?setup.py

?src/main.py

?src/watcher/_watcher.c

?src/watcher/watcher.py

?src/xyzzy.txt

$ hg status `hg root`

A ../COPYING

A ../README

A ../examples/simple.py

?../MANIFEST.in

?../examples/performant.py

?../setup.py

?main.py

?watcher/_watcher.c

?watcher/watcher.py

?xyzzy.txt

7.3. Информация о том что произошло;

К примеру команда hg add, использованная в предыдущем разделе илюстрирует нечто большее, чем просто помощь по командам Mercurial. Если команда воздействует на файл, который вы явно не задали в командной строке, она обычно выведет имя файла, чтобы вас не удивляли изменения.

Это правило наименьшего удивления — если вы явно именуете файл в командной строке, нет никакого смысла в повторении его снова вам. Если же Mercurial работает с файлом неявно, потому что вы не указали имени, или директории, или шаблона (см. ниже), безопаснее сказать вам что произошло.

Для команд, которые ведут себя так есть простой способ заставить их замочать, используя опцию -q. Вы также можете заставить их печатать имена файлов, даже если они явно заданы вами, используя опцию -v.

7.4. Использование шаблонов для указания файлов

Вдополнение к работе с именами файлов и директорий, Mercurial предоставляет вам возможность использования шаблонов. Шаблоны Mercurial достаточно выразительны.

ВUnix-подобных системах (Linux, MaxOS, и т.д.), работу по сопоставлению имен файлов шаблонам обычно выполняет интерпретатор (shell). В этих системах вы должны явно указать Mercurial, что указанное имя является шаблоном. В системе Windows, интерпретатор не раскрывает шаблоны, так что Mercurial автоматически идентифицирует имена как шаблоны, и раскрывает их для вас.

Для указания шаблона вместо обычного имени в командной строке используется следующий синтаксис:

syntax:patternbody

Таким образом, шаблон идентифицируется короткой строкой, указывающей тип шаблона, с последующим двоеточием, и содержимым шаблона за ним.

Mercurial поддерживает два типа синтаксиса шаблонов. Наиболее часто употребляется синтаксис glob. Это тот же самый вид сопоставления, используемый интерпретатором Unix и также должен быть знаком пользователям командной строки Windows.

76

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]