Как настроить kdiff3 в Mac OS?

В файле .gitconfig я настроил diff git следующим образом:

[diff]
    tool = kdiff3

[difftool "kdiff3"]
    path = path_directory/kdiff3.app

В этом параметре kdiff недоступен, и я получаю следующую ошибку при запуске в терминале

>> git difftool
The diff tool kdiff3 is not available as 'Kdiff_local_software_path/kdiff3.app'
fatal: external diff died, stopping at modified_file

Есть ли у вас предложение, я могу исправить эту проблему? В моей текущей настройке Mac OS 10.10.5 git инструмент diff - это git merge tool, который я хочу заменить на kdiff.

Ответ 1

kdiff3 обычно находится в следующем местоположении:

/Applications/kdiff3.app/Contents/MacOS/kdiff3

попробуйте

[difftool "kdiff3"]
    path = /Applications/kdiff3.app/Contents/MacOS/kdiff3

Если вы установили kdiff с помощью brew, вам не понадобится параметр difftool в конфигурации для git 1.8 и далее. Только следующее:

[diff]
    tool = kdiff3

Если вы установили kdiff, установив файл dmg на kdiff.app, установите локальный путь следующим образом:

[difftool "kdiff3"]
    path = directory_path_where_you_installed/kdiff3.app/Contents/MacOS/kdiff3

Ответ 2

  1. Загрузите kdiff3 и установите его как приложение (перетащите kdiff3 в ваши приложения): http://sourceforge.net/projects/kdiff3/files/kdiff3/0.9.98/kdiff3-0.9.98-MacOSX-64Bit.dmg/download

  2. Установите утилиту git config следующим образом, у меня работает на MacBook Pro:

git config --global merge.tool kdiff3

а также:

git config --global mergetool.kdiff3.cmd '/Applications/kdiff3.app/Contents/MacOS/kdiff3 $ BASE $ LOCAL $ REMOTE -o $ MERGED'

Ответ 3

Вам не нужно добавлять пути к вашему gitconfig, как описано в других ответах. Это все, что вам нужно настроить .gitconfig

[diff]
    guitool = kdiff3
[merge]
    tool = kdiff3

Предполагая, что на вашем компьютере установлен homebrew:

brew update
brew tap caskroom/cask
brew cask install kdiff3

Объяснение:

  1. настройка для использования бочки

    brew tap caskroom/cask
    
  2. загружает kdiff3, перемещает его в каталог ваших приложений и связывает kdiff3.sh с /usr/local/bin/kdiff3

    brew cask install kdiff3
    

Ответ 4

  1. Сначала проверьте, установлен ли и распознан ли kdiff3 git:

    $ type -a kdiff3
    -bash: type: kdiff3: not found
    

    В случаях, когда kdiff3 не установлен в macOS, git также покажет следующие сообщения:

    $ git difftool --tool-help
    $ # OR (both command would do)
    $ git mergetool --tool-help
    'git mergetool --tool=<tool>' may be set to one of the following:
            emerge
            opendiff
            vimdiff
            vimdiff2
            vimdiff3
    
    The following tools are valid, **but not currently available**:
            ...
            gvimdiff3
            kdiff3
            meld
            ...
    
    Some of the tools listed above only work in a windowed
    environment. If run in a terminal-only session, they will fail.
    

  1. Затем мы должны установить kdiff3, есть много способов сделать это:

    Я лично предпочитаю MacPort:

    $ port search kdiff3
    kdiff3 @0.9.98_4 (devel)
        kdiff3 is a file comparing and merging tool.
    $ sudo port install kdiff3
    ...installing process...
    

    После этого kdiff3 должен быть доступен для macOS и git

    $ type -a kdiff3
    kdiff3 is /opt/local/bin/kdiff3
    $ git difftool --tool-help
    'git difftool --tool=<tool>' may be set to one of the following:
            emerge
            kdiff3
            opendiff
            ...
    

  1. Наконец, убедитесь, что правильная конфигурация для git:

    [diff]
        tool = kdiff3
    [difftool]
        prompt = false
    [merge]
        tool = kdiff3
        conflictstyle = diff3