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

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