Как использовать opendiff и git diff и не нужно устанавливать все приложение Xcode? - PullRequest
1 голос
/ 26 октября 2019

После обновления до MacOS Mojave мои git и opendiff перестали работать (мои opendiff обычно вызываются git diff).

Я смог получить gitработая, используя следующие две строки :

xcode-select --install
sudo xcode-select -switch /Library/Developer/CommandLineTools

, но opendiff и git diff по-прежнему не работают. Кажется, одним из решений является установка приложения Xcode, которое огромно (говорят, что оно занимает 10 ГБ на жестком диске). Я проверил Spotlight и набрал FileMerge, и смог найти его, который должен совпадать с opendiff, и смог использовать ps ax, чтобы найти путь /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge. Но затем, используя git diff, я фактически использовал bash-скрипт для вызова

#!/bin/sh 
/usr/bin/opendiff "$2" "$5" -merge "$1" | cat

(см. Эту статью github о том, как настроить git-diff-cmd.sh)

поэтому я изменил вторую строку на:

/Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge "$2" "$5" -merge "$1" | cat

, но она не работает. Итак, FileMerge существует, и похоже, что opendiff - это FileMerge. Можно ли заставить git diff работать без установки всего приложения Xcode?

Ответы [ 2 ]

1 голос
/ 26 октября 2019

Это может выглядеть как хак, и на самом деле кажется, что он использует существующую установку XCode:

Я сделал

cd /Applications/Xcode.app
find . -iname '*opendiff*'

и смог найти

./Contents/Developer/usr/bin/opendiff
./Contents/Developer/usr/libexec/git-core/mergetools/opendiff

Первый файл - это двоичный файл, а второй на самом деле является скриптом, поэтому я изменил свой скрипт bash git-diff-cmd.sh на следующее:

#!/bin/sh 
/Applications/Xcode.app/Contents/Developer/usr/bin/opendiff "$2" "$5" -merge "$1" | cat

и git diff canуспешно вызвать opendiff для визуального сравнения.

0 голосов
/ 26 октября 2019

Можно ли заставить git diff работать без установки всего приложения XCode?

Вместо этого установить все приложение BBEdit. Это маленький и эффективный и делает очень хороший визуальный анализ.

...