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

Управление изменениями с Mercurial Queues

Рисунок 12.1. Применение и отмена патчей в стеке патчей MQ

Вы можете повторно применить отменённый или извлечённый патч используя команду qpush. Она создает новую ревизию соответствующую патчу и изменения патча в очередной раз станут присутствовать в рабочей директории. Ниже приведены примеры qpop и qpush в действии.

$ hg qapplied first.patch second.patch $ hg qpop

popping second.patch now at: first.patch $ hg qseries first.patch second.patch

$ hg qapplied first.patch $ cat file1 line 1

line 2 line 3

Обратите внимание, что как только мы извлекли патч или два патча, вывод qseries остается неизменным, в то время как у qapplied изменился.

12.5.5. Вставка и извлечение нескольких патчей

Хотя по умолчанию qpush и qpop работают над одним патчем за раз, вы можете вставить и извлечь много патчей в один проход. Опция -a команды qpush приводит к вставке всех неприменённых патчей, а опция -a для qpop приводит к извлечению всех применённых патчей. (Для некоторых других способов вставки и извлечения многих патчей, смотрите раздел Раздел 12.8, «Получение максимальной производительности от MQ» ниже).

$ hg qpush -a applying second.patch now at: second.patch $ cat file1

line 1 line 2 line 3 line 4

12.5.6. Безопасные проверки и их основа

Некоторые команды MQ проверяют рабочий каталог, прежде чем что-то делать, и не работают, если они находят какие-либо изменения. Они делают это, чтобы вы не потеряли изменения, которые вы уже сделали, но еще не включили в патч. Пример ниже иллюстрирует это, команда qnew не будет создавать новый патч, если есть изменения, вызванных в этом случае hg add для file3.

$ echo 'file 3, line 1' >> file3 $ hg qnew add-file3.patch

$ hg qnew -f add-file3.patch

145

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