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

В.gitconfig Файл, который я настроил для git diff, выглядит следующим образом:

[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.

6 ответов

Решение

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
  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'

  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
    

Вам не нужно добавлять пути к вашему 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
    

Вот обновленные команды, если вы устанавливаете kdiff3 с помощью brew

кран для заваривания

варить установить kdiff3 --cask

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

После выполнения второго шага вам нужно следовать инструкциям, которые терминал показывает вам после того, как все было загружено и установлено (в терминале нужно выполнить еще 3 шага).

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

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

Другие вопросы по тегам