Вам необходимо ознакомиться с документацией KDiff3 , в частности с разделом слияния и окном вывода . Чтобы разрешить конфликт, вам нужно решить, является ли live
или january
правильным выбором для линии. Это ваше решение, ни один инструмент не может знать, имели ли вы в виду одно или другое.
В KDiff3 вы нажимаете Ctrl + 2 , чтобы выбрать live
, нажмите Ctrl + 3 , чтобы выбрать january
или щелкните правой кнопкой мыши на полях нижнего окна и выберите нужную строку. Вы также можете нажать в нижнем окне и отредактировать строку вручную.
Mercurial позволяет вам настроить инструмент слияния так, как вам нравится. TortoiseHg поставляется с конфигурацией по умолчанию, которая ставит KDiff3 на вершину списка, но вы можете использовать другой инструмент, если хотите. Инструмент слияния - это на самом деле просто программа, которая принимает четыре имени файла: три файла для сравнения (базовый, родительский 1, родительский 2) и имя выходного файла.
Чтобы разрешить конфликты в командной строке, вам необходимо запустить подходящий инструмент для трехстороннего слияния из командной строки. Например, вы можете объединиться с vim , если хотите. (Боюсь, я ничего не знаю о vimdiff, я сам использую KDiff3.)
Если вы не хотите видеть всплывающие инструменты слияния, вы можете установить
[ui]
merge = internal:merge
, чтобы Mercurial использовал только внутреннее трехстороннее слияние. Он будет сливать файлы нормально, когда правки не конфликтуют. При возникновении конфликта файл помечается как «неразрешенный», а маркеры конфликта сохраняются в файле.
Затем вам нужно отредактировать файл вручную, чтобы получить нужную версию. Вы также можете повторно объединить и выбрать либо локальную (вашу) версию:
$ hg resolve --tool internal:local your-file
или другая версия:
$ hg resolve --tool internal:other your-file
Вы полностью перезапускаете слияние с помощью hg resolve your-file
. Файл должен быть помечен как «разрешенный», прежде чем вы сможете его зафиксировать. Это сделано с hg resolve --mark your-file
. См. hg resolve --list
о статусе текущего слияния.