git diff con opendiff da el error "No se pudo iniciar FileMerge"

He configurado git para usar ~ / bin / opendiff-git.sh como mi herramienta diferencial externa. Esa secuencia de commands se ve así:

opendiff $2 $5 

Cuando bash hacer un git diff desde la línea de command, aparece este post:

 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. 

¿Que esta pasando? Esto funcionó durante muchos meses, pero dejó de funcionar recientemente.

Así que DESPUÉS de que eliminé la carpeta del desarrollador beta para tratar de resolver esto (no pude conseguir la corrección para trabajar con la herramienta de fusión) me encontré con esto en la command-line:

 Error: No developer directory found at /Developer Beta. Run /usr/bin/xcode-select to update the developer directory path. 

Resulta que puede establecer la ruta del desarrollador que necesita para usar:

 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 

Parece que la installation de la versión beta estableció automáticamente esa ruta a beta. Para solucionarlo, ejecuta esto:

 sudo /usr/bin/xcode-select -switch /Developer 

Eso lo solucionó para mí.

Actualizar

El comentario de Ying a continuación fue lo suficientemente importante como para includelo en la respuesta. Desde Xcode 4.3 en adelante, la location de la carpeta ha cambiado a dentro del package de la aplicación:

 sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/ 

Si tiene dos SDK instalados y la última versión (presumiblemente beta) no tiene instaladas las Herramientas del sistema, algunas herramientas como opendiff pueden romperse. Solo puede tener un set de Herramientas del sistema instaladas a la vez, por lo que debe elegir qué SDK / installation tiene. opendiff este problema utilizando la ruta de opendiff que está en la carpeta del desarrollador que tenía instaladas las herramientas del sistema.

En mi caso, tengo las siguientes instalaciones de Xcode:

Versión estable actual (con las herramientas del sistema instaladas)

 /Developer 

Última versión beta (sin las herramientas del sistema instaladas)

 /Developer (iOS SDK XXX beta) 

Mi script ~/bin/opendiff-git.sh ahora se ve así:

 "/Developer/usr/bin/opendiff" $2 $5 

primero, la razón es la ruta de installation de xcode modificada desde 4.3, por lo que debe reseleccionar la ruta xcode

la guía completa está en el siguiente enlace: http://useyourloaf.com/blog/2012/2/17/updating-to-xcode-43.html