Как использовать opendiff в качестве стандартного mergetool

Привет, я пытаюсь использовать opendiff в качестве git mergetool, но когда я запускаю mergetool, я получаю это сообщение об ошибке:

Opendiff инструмента слияния недоступен как 'opendiff'

Что я делаю неправильно? Раньше он работал нормально, но, поскольку я установил новый жесткий диск, он больше не работает:(

3 ответа

Вам нужно настроить opendiff как глобальный merge.tool:

# locate xcode utilities
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

# set "opendiff" as the default mergetool globally
git config --global merge.tool opendiff

Если вы получаете Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudoОткрытие XCode и принятие лицензии устраняет проблему

Убедитесь, что у вас установлен XCode. (Если вы используете git, то, вероятно, вы используете brew, в этом случае у вас, вероятно, уже установлен XCode.)

Единственное решение - сообщить git, какой инструмент вы хотите использовать:

$ git mergetool -t opendiff

Что касается настройки opendiff в качестве инструмента по умолчанию, вам необходимо установить переменную "merge.tool" в вашем файле конфигурации git.

git поддерживает --dir-diff (-d) для выполнения сравнения каталогов, что хорошо выглядит в FileMerge. Тем не менее, есть несколько небольших проблем с использованием opendiff с --dir-diff. У opendiff нет предустановки --merge target, и git слишком быстро удалит временные файлы, чтобы сохранить изменения. Мой обходной путь - использовать небольшой bash-скрипт для вызова FileMerge. Я назвал это gdiff,

#!/bin/bash
# find top level of git project
dir=$PWD
until [ -e "$dir/.git" ]; do
  if [ "$dir" == "/" ]; then
    echo "Not a git repository" >&2
    exit 1;
  fi
  dir=`dirname "$dir"`
done
# open fresh FileMerge and wait for termination
open -a FileMerge -n -W --args -left "$1" -right "$2" -merge "$dir"

https://gist.github.com/miner/e73fc98a83a8fe05d9ef000d46d68a9f

Назовите это так:

git difftool -d -x gdiff

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