Вопрос по git – Kdiff3 не открывается командой mergetool

23

У меня конфликты, поэтому я печатаю:

git mergetool

Затем я получаю сообщение:

Hit return to start merge resolution tool

Обычно, когда я делаю это, открывается kdiff3, чтобы я мог объединить различия.

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

Я трижды проверил мой git config и мой системный путь, и все кажется идеальным. Файл конфигурации выглядит следующим образом:

 [merge]
    tool = kdiff3
 [mergetool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
 [diff]
    guitool = kdiff3
 [difftool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
 [core]
    editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor   autocrlf = true
 [user]
    name = James Farrell
    email = [email protected]
 [github]
    user = whygosystems
    token = 87d00c2e613b3a7c8c1be817b75b8a33
 [diff]
    external = C:/Program Files (x86)/Git/cmd/git-diff-wrapper.sh

У кого-нибудь есть идеи, что может быть не так?

У меня есть чувство (хотя я могу ошибаться, что это было проблемой, так как я установил новый клиент Windows Github) ....

@ eis Спасибо, я перезагрузился, и это не помогло. iKode
У меня была эта проблема время от времени, и перезагрузка машины всегда помогала. Понятия не имею, почему. eis
Была такая же проблема, для меня этоworkaround помог. PiQuer

Ваш Ответ

4   ответа
21

Я понимаю, что это старое, но для будущих гуглеров, KDiff3 также имеет опцию, где, если слияние тривиально, оно решит это молча и даже не покажет окно.

Я имел это в прошлом в прошлом, так что это может быть то, что происходит с тобой. Я думаю, что эта опция называется «Автосохранение и выход при объединении без конфликтов».

Error: User Rate Limit Exceededkdiff3Error: User Rate Limit Exceeded--autoError: User Rate Limit Exceededsimilar question.
5

Я не использовал git для этой цели в Windows некоторое время, но ваш конфигурационный файл показывает некоторые интересные отличия в отношении строк программы.

[core]
    editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor   autocrlf = true

против

[difftool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe

Я подозреваю, что могут быть некоторые проблемы с пробелами в имени программы. Попробуйте установить пути к исполняемым файлам diff / mergetool:

path = \"c:/Program Files (x86)/KDiff3/kdiff3.exe\"
0

Еще один ответ для будущих Googlers:

На самом деле, никакой внешний инструмент слияния не запустится. Вопрос был подан в августе 2015 года:https://jira.atlassian.com/browse/SRCTREEWIN-3543

2

Опять же, для будущих гуглеров:

Начиная с версии 2.48.02 (29 ноября 2014 г.), Git Extensions начали распространять 64-битную версию kdiff3. (Увидетьhttps://github.com/gitextensions/gitextensions/blob/master/GitUI/Resources/ChangeLog.md#version-24802-29-november-2014.)

Поэтому, если вы работаете с 32-битной ОС и если установщик Git Extensions установил kdiff3, ваш kdiff3 даже не запустится сам по себе. Решением является загрузка 32-битной версии (http://sourceforge.net/projects/kdiff3/files/kdiff3/) и переустановите. Мне даже не нужно было сначала удалять 64-битную версию, так как установщик просто перезаписал предыдущую установку.

Похожие вопросы