Как разрешить конфликты слияния в Mercurial (v1.0.2)? - PullRequest
36 голосов
/ 28 апреля 2009

У меня конфликт слияния с использованием Mercurial 1.0.2:

merging test.h
warning: conflicts during merge.
merging test.h failed!
6 files updated, 0 files merged, 0 files removed, 1 files unresolved
There are unresolved merges, you can redo the full merge using:
  hg update -C 19
  hg merge 18

Я не могу понять, как решить эту проблему. Результаты поиска Google поручают использовать:

hg resolve

но по какой-то причине у моего Mercurial (v1.0.2) нет команды разрешения:

hg: unknown command 'resolve'

Как мне разрешить этот конфликт?

Ответы [ 3 ]

79 голосов
/ 07 апреля 2010

Для выделения ответа в комментарии к Hg 1.1 +:

Для Hg 1.1 + исправить файл вручную, а затем сделать

hg resolve -m test.h

чтобы пометить файл как слитый.

14 голосов
/ 28 апреля 2009

Действительно только для hg

Нет необходимости вызывать какие-либо hg команды. В отличие от svn, Mercurial не отслеживает конфликтующие файлы. Если вы позвоните hg status, вы увидите, что файл просто помечен как измененный.

Просто исправьте файл вручную и подтвердите.

10 голосов
/ 21 августа 2009

Конфликты отслеживания были введены в Mercurial 1.1 , которая является более новой версией, которую вы используете (вам действительно нужно обновить, Mercurial 1.1. Был выпущен в декабре 2008 года). В этой версии вы получили команду resolve, которая работает аналогично svn resolve.

Насколько я помню, Mercurial оставлял маркеры слияния (строки <<<< и >>>>) в вашем файле при возникновении конфликта, если вы не настроили инструмент слияния . Это также относится к более новым версиям - у меня не настроен инструмент слияния, и я получаю маркеры слияния при возникновении конфликтов. Затем я могу вручную исправить файл и пометить его как разрешенный с помощью hg resolve.

...