Ответ 1
Вам нужно посмотреть документацию KDiff3, в частности раздел слияние и выходное окно. Чтобы разрешить конфликт, вам нужно решить, является ли live
или january
правильным выбором для этой строки. Это решение принадлежит вам, ни один инструмент не может знать, если вы имели в виду тот или иной.
В KDiff3 нажмите Ctrl + 2, чтобы выбрать live
, нажмите Ctrl + 3, чтобы выбрать january
или щелкните правой кнопкой мыши по краю нижнего окна и выберите строку, которую вы хотеть. Вы также можете щелкнуть в нижнем окне и отредактировать строку вручную.
Mercurial позволяет вам настроить свой инструмент слияния любым удобным вам способом. TortoiseHg поставляется с конфигурацией по умолчанию, которая помещает KDiff3 в верхнюю часть списка, но вы можете использовать другой инструмент, если хотите. Инструмент слияния - это просто программа, которая принимает четыре имени файла: три файла для сравнения (base, parent 1, parent 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
для состояния текущего слияния.