git diff с opendiff выдает ошибку «Не удалось запустить FileMerge» - PullRequest
13 голосов
/ 18 февраля 2011

Я настроил 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 ]

31 голосов
/ 09 августа 2011

Итак, ПОСЛЕ того, как я удалил папку разработчика бета-версии, чтобы попытаться решить эту проблему (не удалось получить исправление для работы с инструментом слияния), я наткнулся на это в командной строке:

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/
2 голосов
/ 18 февраля 2011

Если у вас установлено два SDK, а в последней (предположительно бета) версии не установлены системные инструменты, некоторые инструменты, такие как opendiff, могут сломаться. Одновременно может быть установлен только один набор системных инструментов, поэтому вам нужно выбрать, какой SDK / установка имеет его. Я исправил эту проблему, используя путь opendiff, который находится в папке Developer, в которой установлены системные инструменты.

В моем случае у меня есть следующие установки Xcode:

Текущий стабильный выпуск (с установленными Системными инструментами)

/Developer

Последняя бета-версия (без установленных системных инструментов)

/Developer (iOS SDK XXX beta)

Мой ~/bin/opendiff-git.sh скрипт теперь выглядит так:

"/Developer/usr/bin/opendiff" $2 $5
1 голос
/ 22 февраля 2012

сначала причина в том, что путь установки xcode изменен с версии 4.3, поэтому необходимо повторно выбрать путь xcode

Полное руководство находится по ссылке ниже: http://useyourloaf.com/blog/2012/2/17/updating-to-xcode-43.html

...