Я не могу сделать git diff использовать opendiff

Я хочу использовать opendiff как инструмент сравнения по умолчанию для git diff. Раньше это работало, но по какой-то причине перестало работать. Я использую скрипт:

echo opendiff $2 $5 > opendiff-git.sh

который установлен в.gitconfig:

[diff]
external = ~/opendiff-git.sh

Это перестало работать для меня в последнее время. Что случилось?

Обновление: когда я клонировал новый репозиторий, все работало нормально! Странный!

3 ответа

Решение

Я нашел этот вопрос, когда пытался установить opendiff в качестве инструмента git diff & merge. Странно то, что когда я использовал echo opendiff $2 $5 > opendiff-git.sh для создания скрипта, скрипт не содержал заполнителей аргументов $ 2 $ 5, я добавил их вручную, и он начал работать!

Эта команда

echo opendiff $2 $5 > opendiff-git.sh

В результате файл opendiff-git.sh, содержащий

opendiff

Я добавил два аргумента заполнителей $ 2 $ 5 вручную

opendiff $2 $5

Сделал исполняемый скрипт оболочки как предложено knittl

chmod +x ~/opendiff-git.sh

И это работает!

Убедитесь, что ваш opendiff-git.sh В файле установлены исполняемые биты:

chmod +x ~/opendiff-git.sh

Теперь вы можете указать инструмент по умолчанию, используя git config, Использовать FileMerge, т.е. opendiff, бежать:

git config --global diff.tool opendiff

Если вы просматриваете ~/.gitconfig файл, теперь вы должны увидеть:

[diff]
    tool = opendiff

Теперь должно работать.

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