Содержание
series
Для просмотра команд предоставляемых mq, используйте команду hg help mq.
Команда qapplied выводит стек текущих применённых патчей. Патчи печатаются в порядке от старых к новым, так что последний патч в списке будет «верхним» патчем.
Команда qcommit фиксирует замеченные изменения в репозитории .hg/patches
. Эта команда работает только если директория .hg/patches
является репозиторием, например, вы создали каталог с помощью hg qinit -c
или запустив hg init в директории после запуска qinit.
Эта команда представляет собой сокращение от hg commit --cwd .hg/patches.
Команда qdelete удаляет запись о патче из файла series
в каталоге .hg/patches
. Это не извлечение патча, если патч уже применён. По умолчанию, это не приводит к удалению файла патча, для этого используйте опцию -f
.
Команда qdiff выводит список различий верхнего применяемого патча. Это эквивалентно hg diff -r-2:-1.
Команда hg qfinish преобразует указанные примененные патчи в постоянную ревизию, перемещая их из-под контроля MQ, чтобы они преобразовались в нормальную историю репозитория.
Команда qfold объединяет несколько исправлений в верхний применяемый патч, так что верхний применяемый патч делает объединение всех изменений в патчах запроса.
Патчи для свёртки не должны быть применены; qfold выйдет с ошибкой, если какой-либо патч применён. Порядок, в котором складываются патчи является значимым; hg qfold a b означает «применить текущий верхний патч, затем a
, потом b
».
Комментарии сворачиваемых патчей добавляются к комментариям патча назначения, при этом каждый блок комментариев разделен символами трёх звездочек («*
»). Использование опции -e
редактирует сообщение фиксации для комбинированных патчей/ревизий после завершен свёртки.
Команда qheader печатает заголовок или описание, из патча. По умолчанию, она печатает заголовок применяемого верхнего патча. С учетом аргументов, оно выводит заголовок именованного патча.
Команда qimport добавляет запись для внешнего патча в файле series
, а также копирует патч в каталог .hg/patches
. Она добавляет запись сразу же после верхнего примененного патча, но не вставляет патч.
Если каталог .hg/patches
репозиторий, qimport автоматически выполняет hg add импортируемого патча.
Команда qinit готовит репозиторий для работы с MQ. Она создает каталог с именем .hg/patches
.
Если директория .hg/patches
репозиторий, команды qimport и qnew автоматически запускают hg add для новых патчей.
Команда qnew создаёт новый патч. Она принимает один обязательный аргумент, имя использующееся для файла патча. Вновь созданный патч создается по-умолчанию пустым. Он добавляется в файл series
после текущего верхнего применённого патча, и сразу вставляется верхним патчем.
Если qnew находит измененные файлы в рабочем каталоге, она откажется от создания нового патча, если не используется опция -f
(смотрите ниже). Такое поведение позволяет вызвать qrefresh для вашего верхнего применённого патча, перед тем как применить новый патч поверх него.
-f
: Создаёт новый патч, если содержимое рабочего каталога изменено. Любые неразрешенные модификаций добавляются в только что созданный патч, так что после того как команда завершает свою работу, рабочий каталог больше не будут измененым.
-m
: Использование данного текста как сообщения фиксации. Этот текст будет храниться в начале файла заплатки, до данных патча.
Команда qnext печатает имя следующего патча в файле series
после верхнего применяемого патча. Этот патч будет применён, если вы запустите qpush.
Команда qpop удаляет применённые патчи с вершины стека применённых патчей. По умолчанию, она удаляет только один патч.
Эта команда удаляет наборы изменений, которые представляют извлечённые патчи из репозитория, и обновляет рабочий каталог, чтобы устранить последствия патчей.
Эта команда принимает необязательный аргумент, который она использует в качестве имени или индекса патча для извлечения. Если имя передаётся, патчи будут применяться пока патч, имя которого было передано, не станет верхним. Если передаётся номер, qpop использует номер в качестве индекса записи в файле серий, начиная с нуля (пустые строки и строки, содержащие только комментарии не в учитываются). Она извлекает патчи пока выявленный патч не станет самым верхним применённым патчем.
Команда qpop не читает или пишет патчи или файл series
. Таким образом, безопасно извлечь патч, который вы удалили из файла series
или патч, который был переименован или удален полностью. В двух последних случаях, используйте имя патча, как это было, когда вы применили его.
По умолчанию, команда qpop не выполнится для любого патча, если рабочий каталог был изменен. Вы можете изменить это поведение, используя опцию -f
, которая возвращает все изменения в рабочий каталог.
Команда qpop удаляет одну строку с конца файла status
для каждого патча, который она извлекает.
Команда qprev печатает название патча в файле series
, который находится перед верхним применённым патчем. Он станет самым верхним патчем применённым при запуске qpop.
Команда qpush добавляет патчи на верх стека применённых патчей. По умолчанию, она добавляет только один патч.
Эта команда создает новую ревизию для представления каждого применённого патча и обновляет рабочую директорию применяя патч.
По умолчанию данные используемые при создании ревизии, следующие:
Текущая дата и часовой пояс коммитера. Так как эти данные используются для вычисления идентификатора ревизии, это означает, что если вы извлечёте (qpop) патч и добавите (qpush) его снова, ревизия, которые вы вставите будет иметь другой идентификатор, чем та ревизия которую вы удалили.
Автор который используется по умолчанию при использовании команды hg commit.
Сообщение фиксации — любой текст из файла патча, который находится перед первым заголовком diff. Если нет такого текста, по умолчанию используется сообщение, которое идентифицирует имя патча.
Если патч содержит заголовок Mercurial для патча, информация в заголовке патча перекрывает все эти умолчания.
-a
: вставить все не применённые патчи из файла series
, пока есть что вставлять.
-m
: Если патч не удастся применить аккуратно, использовать запись исправлений в другой сохранённой очереди, чтобы вычислить параметры трехстороннего слияния, а также выполнить трехстороннее слияние с использованием обычного механизма слияния Mercurial. Использовать результат слияния в качестве нового содержимого патча.
-n
: Использовать имя очереди, если слияние происходит во время вставки.
Команда qpush читает, но не изменяет, файл series
. Он добавляет одну строку в файл hg status для каждого патча, который она вставляет.
Команда qrefresh обновляет верхний применённый патч. Она изменяет патч, удаляет старую ревизию, которая представляет патч, и создает новую ревизию для представления изменённого патча.
Команда qrefresh просматривает следующие изменения:
Изменения в сообщении фиксации, то есть текст до первого заголовка различий в патче, отражены в новом наборе изменений, которая представляет собой патч.
Изменения в отслеживаемых файлах в рабочем каталоге добавляются в патч.
Изменения файлов отслеживаемых с помощью hg add, hg copy, hg remove, или hg rename. Добавляет файлы и копирует и переименовывает целевой патч, в то время как удаленные файлы и переименованные удаляются.
Даже если qrefresh обнаруживает отсутствие изменений, она по-прежнему переписывает ревизию, которая представляет собой патч. Это приводит к изменению идентификатора отличающегося от предыдущих ревизий, которые идентифицируют патч.
Команда qrename переименовывает патч и изменяет запись для патча в файле series
.
С помощью единственного аргумента, qrename переименовывает верхний применённый патч. С двумя аргументами, переименовывает патч из первого аргумента ко второму.
Команда qseries выводит целый ряд патчей из файла series
. Он печатает только имена патчей, а не пустые строки или комментарии. Он печатает в порядке от первого к последнему применённому патчу.
Команда qunapplied печатает имена патчей из файла series
, которые пока еще не применены. Он выводит их в порядке от следующего патча, которые будет вставлен до последнего.
Команда hg strip удаляет ревизию, и всех её потомков, из репозитория. Она отменяет последствия изменений удаленной из репозитория, и обновляет рабочую директорию на первого родителя удалённой ревизии.
Команда hg strip сохраняет резервные копии удаленных ревизий в пакете, так что они могут быть повторно применены, если по ошибке удалены.
Файл series
содержит список имен из всех патчей, которые MQ может применить. Он представляется в виде списка имен, с одним именем в каждой строке. Начальные и конечные пробелы в строке игнорируются.
Строки могут содержать комментарии, которые начинается с символа «#
» и продолжается до конца строки. Пустые строки и строки, содержащие только комментарии, игнорируются.
Вам часто придется изменять ряд файлов вручную, поэтому поддерживаются комментарии и пустые строки, упомянутые выше. Например, вы можете временно закомментировать патч, и qpush будет пропускать этот патч при применении исправлений. Также вы можете изменить последовательность применения патчей, изменяя их порядок в файле series
.
Размещение файла series
под контролем версий также поддерживается. Это хорошая идея, чтобы поставить все патчи, которые к ней относятся, под контроль версий. Если вы создаете каталог с помощью опции -c
команды qinit, это будет сделано автоматически.
Файл status
содержит имена и хеши ревизий всех патчей, которые в настоящее время могут быть применены MQ. В отличие от файла series
, этот файл не предназначен для редактирования. Вы не должны помещать этот файл под контроль версий, или изменять его в любом случае. Он используется MQ строго для внутреннего учета.