Сравнение с Git и KDiff3 - PullRequest
       32

Сравнение с Git и KDiff3

11 голосов
/ 03 сентября 2010

Можно ли настроить Git так, чтобы я мог использовать трехстороннее сравнение в KDiff3?

У меня есть две ветви, которые слишком различны для их автоматического слияния, мне просто нужно проверить каждую точку слияния, и я думаю, что лучшим способом было бы проверить ветку, в которой я хочу внести изменения из другой ветви, и сказать

git difftool HEAD_OF_OTHER_BRANCH -- .

И затем выберите Объединить файл в KDiff3. После просмотра файлов я просто фиксирую.

Я настроил merge.conflictstyle и diff.conflictstyle на diff3, но KDiff3 по-прежнему начинается с двухстороннего сравнения. Это возможно? Я думаю, если Git также отправляет хэш общего предка в качестве параметра, это возможно, но так ли это?

Существует обсуждение о том, как сделать это с SVN и BC3, но я не смог найти ничего для Git и KDiff3.

Ответы [ 2 ]

9 голосов
/ 05 марта 2012

Запустите это в командной строке:

git config --global mergetool.kdiff3.path /path/for/your/kdiff3/binary  

Тогда, когда вы решаете конфликты, вам просто нужно сделать:

git mergetool --tool=kdiff3
2 голосов
/ 03 сентября 2010

Похоже, что git diff делает только 2-стороннюю разницу (что имеет смысл создавать патчи и т. Д.), За исключением состояния слияния, для этого вы должны выполнить слияние.Я был в аналогичной ситуации на днях, и я в конечном итоге Mergin, используя стратегию ours.Это сработало, но не было идеальным.Может быть, нам нужна стратегия слияния «без разрешения», которая не пытается разрешить конфликты.Возможно, вам удастся эмулировать это путем настройки файлов .git / MERGE_ * и установки всех файлов как конфликтующих.
В противном случае очевидным решением является извлечение 3 разных каталогов и запуск kdiff3, но я полагаю, вы ищете болееэлегантное решение

...