git diff с opendiff выдает ошибку "Не удалось запустить FileMerge"
Я настроил git для использования ~/bin/opendiff-git.sh в качестве внешнего инструмента сравнения. Этот скрипт выглядит так:
opendiff $2 $5
Когда я пытаюсь сделать git diff из командной строки, я получаю это сообщение:
2011-02-18 13:58:55.532 opendiff[27959:60f] exception raised trying to run FileMerge: launch path not accessible
2011-02-18 13:58:55.535 opendiff[27959:60f] Couldn't launch FileMerge
external diff died, stopping at source/some_file.m.
В чем дело? Это работало много месяцев, но недавно перестало работать.
3 ответа
Поэтому ПОСЛЕ того, как я удалил папку разработчика бета-версии, чтобы попытаться решить эту проблему (не удалось получить исправление для работы с инструментом слияния), я наткнулся на это в командной строке:
Error: No developer directory found at /Developer Beta. Run /usr/bin/xcode-select to update the developer directory path.
Оказывается, вы можете установить путь разработчика, который вам нужен:
Usage: xcode-select -print-path
or: xcode-select -switch <xcode_folder_path>
or: xcode-select -version
Arguments:
-print-path Prints the path of the current Xcode folder
-switch <xcode_folder_path> Sets the path for the current Xcode folder
-version
Похоже, что установка бета-версии автоматически установила этот путь на бета-версию. Чтобы это исправить, запустите это:
sudo /usr/bin/xcode-select -switch /Developer
Это исправило это для меня.
Обновить
Комментарий Иня ниже был достаточно важен, чтобы включить его в ответ. Начиная с Xcode 4.3, местоположение папки изменилось на внутри пакета приложения:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/
Если у вас установлено два SDK, а в последней (предположительно бета-версии) не установлены системные инструменты, некоторые инструменты, такие как opendiff
может сломаться. Одновременно может быть установлен только один набор системных инструментов, поэтому вам нужно выбрать, какой SDK/ установка имеет его. Я исправил эту проблему, используя путь opendiff
это находится в папке Developer, в которой были установлены системные инструменты.
В моем случае у меня есть следующие установки Xcode:
Текущая стабильная версия (с установленными Системными инструментами)
/Developer
Последняя бета-версия (без установленных системных инструментов)
/Developer (iOS SDK XXX beta)
мой ~/bin/opendiff-git.sh
скрипт теперь выглядит так:
"/Developer/usr/bin/opendiff" $2 $5
Во-первых, причина заключается в том, что путь установки xcode изменен с версии 4.3, поэтому необходимо повторно выбрать путь xcode.
полное руководство находится по ссылке ниже: http://useyourloaf.com/blog/2012/2/17/updating-to-xcode-43.html