Git diff с opendiff дает ошибку "Не удалось запустить FileMerge"
У меня есть git, который настроен на использование ~/bin/opendiff- git.sh в качестве внешнего инструмента сравнения. Что script выглядит так:
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.
Что происходит? Это работает много месяцев, но в последнее время перестало работать.
Ответы
Ответ 1
Итак, ПОСЛЕ того, как я удалил бета-версию программы разработчика, чтобы попробовать и решить эту проблему (не удалось заставить исправление работать с инструментом объединения), я наткнулся на это в командной строке:
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
Это исправило это для меня.
Update
Комментарий Ying был достаточно важен для включения в ответ. Начиная с Xcode 4.3, местоположение папки было изменено внутри пакета приложения:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/
Ответ 2
Если у вас установлено два SDK, а в последней версии (предположительно бета-версии) нет установленных средств системы, некоторые инструменты, такие как opendiff
, могут сломаться. Вы можете установить только один набор системных инструментов за один раз, поэтому вам нужно выбрать, какой SDK/установка имеет его. Я исправил эту проблему, используя путь opendiff
, который находится в папке разработчика, в которой установлены системные инструменты.
В моем случае у меня есть следующие установки Xcode:
Текущая стабильная версия (с установленными системными инструментами)
/Developer
Последняя бета-версия (без установленных средств системы)
/Developer (iOS SDK XXX beta)
Мой ~/bin/opendiff-git.sh
script теперь выглядит следующим образом:
"/Developer/usr/bin/opendiff" $2 $5
Ответ 3
Сначала причина в том, что путь установки xcode изменен с 4.3, поэтому необходимо повторно выбрать путь xcode
полное руководство находится в ссылке ниже:
http://useyourloaf.com/blog/2012/2/17/updating-to-xcode-43.html