8 votos

¿Cómo utilizar el mergetool de Xcode 4 de forma autónoma?

A veces tengo que hacer git merges en la consola. Hasta ahora, para resolver los conflictos, utilizaba el FileMerge de Xcode 3 (se puede abrir en la consola con el comando 'opendiff'). Si aparecen 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 forma parte del ejecutable de Xcode 4, en lugar de ser independiente. Permite previsualizar el archivo fusionado, y editar directamente el código fusionado caso por caso, lo que hace que la fusión de conflictos complejos sea increíblemente rápida y satisfactoria.

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

No encuentro un ejecutable para esta herramienta dentro del paquete de Xcode 4. Cualquier hack que logre esto sería bienvenido.

4voto

Eltariel Puntos 895

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 a utilizar para la resolución de conflictos.

Así que vete:

[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 fusión, cuando hay conflictos de fusión.

Dicho esto, prefiero MUCHO DiffMerge de SourceGear que es una herramienta gratuita de diff y three-way-merge que hace una resolución de conflictos mucho mejor, orientada a las palabras. Y en la documentación de DiffMerge está lo que hay que decirle a git para que sea la herramienta de difusión y fusión por defecto.

0voto

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

-1voto

zengr Puntos 914

Esto terminó funcionando para mí

[merge]
  tool = opendiff

[mergetool]
  keepBackup = false

[mergetool "opendiff"]
  cmd = "opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\""

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X