Оглавление filesets

Задание набора файлов

    Mercurial поддерживает функциональный язык для выбора набора файлов.

    Как и другие шаблоны имен файлов, этот шаблон обозначается префиксом
    'set:'. Язык поддерживает несколько предикатов, которые объединяются
    инфиксными операторами. Для группировки можно использовать скобки.

    Идентификаторы, такие как имена файлов или шаблоны, должны заключаться в
    одиночные или двойные кавычки, если они содержат символы не из набора
    "[.*{}[]?/\_a-zA-Z0-9\x80-\xff]", или если они совпадают с одним из
    предопределённых предикатов. Это относится также и к шаблонам имен файлов,
    не являющихся glob'ами, и к аргументам предикатов.

    В идентификаторах можно использовать специальные символы, экранируя их.
    Например "\n" интерпретируется как перевод строки. Чтобы запретить такую
    интерпретацию, поставьте перед строкой "r", например, "r'...'".

    Поддерживается один префиксный оператор:

    "not x"
      Файлы, не входящие в x. Краткая форма: "! x".

    Поддерживаемые инфиксные операторы:

    "x and y"
      Пересечение файлов из x и y. Краткая форма: "x & y".

    "x or y"
      Объединение файлов из x и y. Существуют две краткие формы: "x | y" and
      "x + y".

    "x - y"
      Файлы, входящие в x, но не в y.

    Поддерживаются следующие предикаты:

    "added()"
      Файл, добавленный согласно статусу.

    "binary()"
      Файл, который рассматривается как бинарный (содержит символы NUL).

    "clean()"
      Файлы, не содержащие изменений согласно статусу.

    "copied()"
      Файл, записанный как копируемый.

    "deleted()"
      Файл, удаленный из рабочего каталога согласно статусу.

    "encoding(name)"
      Файл, который может быть корректно представлен в данной кодировке. Может
      быть бесполезным для кодировок, отличных от ASCII и UTF-8.

    "exec()"
      Файл, который помечен как исполняемый.

    "grep(regex)"
      Файл, содержащий заданное регулярное выражение.

    "hgignore()"
      Файл, подходящие под активный шаблон из .hgignore.

    "ignored()"
      Файл, игнорируемый согласно статусу. Эти файлы рассматриваются только
      если используется этот предикат.

    "modified()"
      Файл, измененный согласно статусу.

    "removed()"
      Файл, удаленный согласно статусу.

    "resolved()"
      Файл, конфликты в котором считаются разрешенными.

    "size(expression)"
      Размер файла совпадает с данным шаблоном. Например:

      - 1k (файлы от 1024 до 2047 байт)
      - < 20k (файлы меньше 20480 байт)
      - >= .5MB (файлы не меньше 524288 байт)
      - 4k - 1MB (файлы от 4096 байт до 1048576 байт)

    "subrepo([шаблон])"
      Подхранилища, чьи пути совпадают с данным шаблоном

    "symlink()"
      Файл, помеченный как символическая ссылка.

    "unknown()"
      Файл, неизвестный согласно статусу. Эти файлы рассматриваются только
      если используется этот предикат.

    "unresolved()"
      Файл, конфликты в котором считаются неразрешенными.

    Примеры запросов:

    - Показать статус файлов, считающихся бинарными, в рабочем каталоге:

        hg status -A "set:binary()"

    - Забыть файлы, которые записаны в .hgignore, но уже контролируются:

        hg forget "set:hgignore() and not ignored()"

    - Найти текстовые файлы, содержащие строку:

        hg locate "set:grep(magic) and not binary()"

    - Найти файлы С с нестандартной кодировкой:

        hg locate "set:**.c and not encoding('UTF-8')"

    - Вернуть (revert) копии больших бинарных файлов:

        hg revert "set:copied() and binary() and size('>1M')"

    - Удалить файлы, перечисленные в foo.lst и содержащие букву a или b:

        hg remove "set: 'listfile:foo.lst' and (**a* or **b*)"

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