Генерация патчей в Mercurial - PullRequest
       0

Генерация патчей в Mercurial

41 голосов
/ 23 октября 2011

Я искал это в руководстве, но не могу сгенерировать патч для последнего коммита. Я пытался

hg qnew patch_name

но файл только с

# HG changeset patch
# Parent a6a8e225d16ff5970a8926ee8d24272a1c099f9c

Я тоже пробовал

hg export tip

но это ничего не делает. Я совершил изменения точно.

Как сгенерировать файл патча с последним коммитом?

Ответы [ 6 ]

59 голосов
/ 23 октября 2011

Команда для этого: export:

$ hg export -o FILE -r REV

Не требует перенаправления и, следовательно, будет работать правильно на любой платформе / оболочке.

22 голосов
/ 23 октября 2011

Ваш hg export tip - лучший способ сделать это, и ответы на основе hg diff и hg log - это просто меньшие версии того же самого. Что именно вы видите / получаете, когда набираете hg export tip? Что показывает вывод hg log -p -r tip?

Набор изменений tip - это просто «набор изменений, который последний раз поступил в мой репозиторий», и это не такая полезная концепция, как вы можете подумать, поскольку hg pull и hg tag также создают наборы изменений. Если вы действительно хотите, чтобы последнее, что вы совершили, вам понадобится более точный revspec.

16 голосов
/ 23 октября 2011

Вроде так:

hg diff -r tip > tip.patch
6 голосов
/ 23 октября 2011

Вы можете использовать эту команду:

hg log -r tip -p > tip.patch

это сгенерирует патч только для этой ревизии.

1 голос
/ 24 октября 2011

Если вы хотите преобразовать последний коммит в файл патча, используйте

hg qimport -r tip

Это заменит самый верхний регулярный коммит на примененный файл патча MQ.

0 голосов
/ 13 декабря 2015

Чтобы сгенерировать исправления с помощью «mq extensions» в Mercurial, вы можете выполнить следующие шаги. Это создаст патч с использованием Mercurial:

1) Включение расширений mq: добавьте следующие строки в файл hgrc и сохраните его.

[extensions]
mq =

2) Создание патча с использованием расширений mq: чтобы создать патч с использованием расширений mq, вы можете сделать следующее.

hg qnew -e -m "comment you want to enter" bug_name.patch

В приведенной выше команде флаг -e предназначен для редактирования патча, а флаг -m предназначен для добавления сообщения в патч.

3) Обновление патча: для обновления патча вы можете использовать следующую команду, когда патч уже применен.

hg qrefresh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...