Как распутать / отменить слияние поверх примененных патчей MQ? - PullRequest
4 голосов
/ 16 августа 2011

Я случайно слил ветку в рабочее пространство с примененными исправлениями.

Как мне убрать этот беспорядок? Нужно ли очищать слияние (hg up -C) или есть какой-нибудь способ сохранить мое слияние?

1 Ответ

2 голосов
/ 16 августа 2011

Mercurial 1.9.1, TortoiseHg 2.1.2

Я воспроизвел основу ситуации с этими командами на свежем репо:

echo first > file.txt
hg add
hg ci -m first
hg branch test
echo test1 >> file.txt
hg ci -m test1
hg up 0
echo patch >> file.txt
hg qnew -f patch.diff

Затем я выполнил hg merge test, разрешил конфликты и попробовал несколько разных вещей:

  • В фиксации отказано из-за использования патчей:

    abort: cannot commit over an applied mq patch
    
  • Я не смог отложить слияние в TortoiseHg.

  • Я не мог qnew:

    abort: cannot manage merge changesets
    

Единственное, что я смог сделать, чтобы сохранить слияние, - это закончить исправления и зафиксировать набор изменений. Что касается данных, я думаю, что сохранение патчей и слияние являются взаимоисключающими.

Я знаю, что pbranch позволяет объединять патчи, и, вероятно, есть какой-то способ импортировать в него ваши патчи MQ. Я не думаю, что это поддерживается в TortoiseHg.

...