Применение патчей в ветке

Я получаю патчи от автора. Видимо, он производит патчи в багажнике. Однако я хотел бы зафиксировать его изменения в новой ветке. Могу я узнать, как это сделать через Tortoise-Hg?


person Cheok Yan Cheng    schedule 26.04.2011    source источник


Ответы (3)


Приведенные ниже указания предполагают, что вы хотите, чтобы исправления были изолированы на named branch.

С помощью командной строки легко применять исправления к новой именованной ветке. Однако, если вы хотите сделать это, используя только TortoiseHg, вы должны создать именованную ветку с пустой фиксацией перед применением патчей.

Использование командной строки:

hg branch <branch name>
hg qimport --push <patch-file-1>
hg qimport --push <patch-file-2>
hg qfinish --applied

Используя TortoiseHg v1.1.x:

  1. Импортируйте файлы исправлений в свою очередь исправлений (не применяя их).
  2. Create a new named branch using an empty commit:
    • Open a commit dialog
    • Нажмите кнопку с надписью "branch: default"
    • Выберите "Open a new named branch"
    • Введите название вашего филиала в предоставленное текстовое поле
    • Нажмите кнопку OK.
    • Введите сообщение фиксации (например, «Создана ветка для исправлений от») и нажмите «Commit».
  3. Примените исправления в очереди исправлений (по одному или все вместе).
  4. Щелкните правой кнопкой мыши патчи в очереди и выберите «Finish Applied».

Используя TortoiseHg v2.0.x:

Будет работать тот же процесс, что и для TortoiseHg v1.1.x. Процесс создания именованной ветки с пустой фиксацией немного отличается, но общая концепция та же.

person Tim Henigan    schedule 26.04.2011
comment
По-видимому, также возможно hg branch <branch name> в командной строке, а затем применять исправления через TortoiseHg, если вам так удобнее. - person Farce; 17.04.2014
comment
TortoiseHg v2.0: вам не нужно делать пустой коммит. Просто примените патч, затем измените кнопку на QRefresh и вы сможете изменить ветку обычным способом. - person Mark Jeronimus; 20.01.2020

В TortoiseHg 2.7 обновите ветку, к которой вы хотите применить патч (или создайте ее, если она не существует). Выберите Repository > Import и используйте Browse..., чтобы выбрать отдельный файл исправления, или Browse Directory..., чтобы импортировать папку с исправлениями.

person webdevduck    schedule 23.05.2013
comment
+ 1 Сработало отлично и так просто - person Gudradain; 22.07.2014

Исходная ветвь, откуда пришел патч, не имеет значения для hg import, если вы не используете опцию --exact. Итак, вы должны создать нужную ветку и применить патч:

hg branch new_branch
hg import /tmp/patch.txt
person andref    schedule 23.05.2013