Estoy corriendo OS X.10
, Xcode 7
y SourceTree 2
.
Cuando selecciono un archivo en conflicto y Launch an external merge tool
aparece una ventana muy brevemente... y luego no pasa nada .
Lo intenté (consulte esta página de ayuda ) sudo ln -s /Developer/usr/bin/opendiff /usr/bin/opendiff
pero no funcionó (recibí el mensaje ln: /usr/bin/opendiff: File exists
).
¿Qué tengo que hacer?
Aquí hay una imagen de la ventana que aparece brevemente.
Estas son las preferencias de SourceTree:
Mi problema era que estaba ejecutando una versión anterior de Xcode y no había configurado las herramientas de la línea de comandos.
Seleccione las herramientas en las preferencias de Xcode -> ubicaciones:
Luego ejecute este comando en la terminal para verificar:
git config --global -l
El comando git imprimirá la ruta de la herramienta diff, entre otra información de configuración. Si no está configurado, generará un error con algo similar a lo siguiente:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),
Suponiendo que está en la última versión de SourceTree (Versión 2.0.5.5 (2.0.5.5))
Intente agregar lo siguiente manualmente a su .gitconfig (o verifique que SourceTree haya puesto estas líneas exactas)
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
O simplemente puede habilitar "Permitir que sourcetree modifique sus archivos de configuración globales de mercurial y git". en Preferencias -> pestaña General
Estas líneas se actualizarán automáticamente.
mmmmmm
mmmmmm
colas
mmmmmm
colas
2015-11-04 17:11:32.360 opendiff[10848:132187] too few arguments 2015-11-04 17:11:32.365 opendiff[10848:132187] usage: opendiff file1 file2 [-ancestor ancestorFile] [-merge mergeFile]