¿Cómo usar el mergetool Xcode 4 de manera independiente?

8

A veces tengo que hacer combinaciones de git en la consola. Hasta ahora, para resolver conflictos, estaba usando FileMerge de Xcode 3 (puede abrirlo en la consola con el comando 'opendiff'). Si se muestran conflictos, uso 'git mergetool' que invoca automáticamente opendiff para cada uno de los archivos en conflicto.

Sin embargo, Xcode 4 cuenta con un componente mergetool mucho mejor para resolver conflictos. Creo que este componente es parte del ejecutable de Xcode 4, en lugar de ser independiente. Le permite obtener una vista previa del archivo combinado y editar directamente el código combinado caso por caso, lo que hace que la combinación de conflictos complejos sea increíblemente rápida y satisfactoria.

¿Hay alguna forma de utilizar el mergetool Xcode 4 al invocar 'git mergetool' desde la Terminal?

No puedo encontrar un ejecutable para esta herramienta dentro del paquete Xcode 4. Cualquier truco que logre esto sería bienvenido.

    
pregunta Ricardo Sanchez-Saez 18.08.2011 - 14:00

3 respuestas

4

opendiff toma dos argumentos de nombre de archivo, y un parámetro --ancestor con un tercer nombre de archivo, para producir un diff de tres vías, y un parámetro --merge para decir el archivo de salida que se usará para la resolución de conflictos.

Así que ve:

[mergetool "opendiff"]
    cmd = "opendiff \"$LOCAL\"  \"$REMOTE\" \"$(if test -f \"$BASE\"; then echo \"--ancestor $BASE\"; else echo \"--ancestor $LOCAL\"; fi)\" --merge=\"$MERGED\" "
[merge]
    tool = opendiff

Eso debería hacer que git use opendiff como su herramienta de combinación, cuando hay conflictos de combinación.

Dicho esto, yo MUY prefiero DiffMerge from SourceGear , que es una herramienta gratuita de diferencia y combinación de tres vías que Lo hace mucho mejor, orientado a la palabra, resolución de conflictos. Y en la documentación de DiffMerge hay qué decirle a git para que sea la herramienta predeterminada de fusión y fusión.

    
respondido por el Dan Ray 18.08.2011 - 17:07
0

Puede editar en el editor de texto (muy básico) dentro de FileMerge abriendo el panel del editor, que está cerrado de forma predeterminada. Para abrir el editor en FileMerge, arrastre el punto debajo de la columna de la zona central hacia arriba para abrir el panel del editor.

    
respondido por el Austin-Soft.com 17.02.2014 - 19:12
-1

Esto terminó trabajando para mí

[merge]
  tool = opendiff

[mergetool]
  keepBackup = false

[mergetool "opendiff"]
  cmd = "opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\""
    
respondido por el macek 05.12.2012 - 23:59

Lea otras preguntas en las etiquetas