domingo, 25 de mayo de 2014

Herramienta de diff y merge en Git

Una vez configurado el editor de texto predeterminado para git que se usará para solicitar el mensaje en un commit, ahora es el momento de configurar la herramienta de comparación (git difftool) y mezcla (git mergetool) de ficheros.

En mi caso he optado por KDiff3, pero la lista de herramientas para estas tareas es muy amplia. El propio SourceTree viene preparado para trabajar con las siguientes (y simplemente seleccionado la herramienta de un desplegable en Tools > Options > Diff):

Si configuramos la herramienta desde SourceTree, esta configuración no valdrá para Git Bash y será exclusiva de SourceTree. De este modo, si queremos utilizar alguna herramienta visual desde Git Bash tendremos que configurarlo por nosotros mismos.

La configuración será una u otra en función de si la ruta al fichero kdiff3.exe está o no incluida en la variable de entorno PATH.

Si kdiff3.exe está en PATH, nos bastará con ejecutar los siguientes comandos de git:

git config --global diff.tool kdiff3

git config --global merge.tool kdiff3

Si kdiff3.exe no está en PATH, la configuración es un poco más laboriosa:

git config --global diff.tool kdiff3

git config --global difftool.kdiff3.path "C:/Program Files (x86)/KDiff3/kdiff3.exe"

git config --global merge.tool kdiff3

git config --global merge.kdiff3.path "C:/Program Files (x86)/KDiff3/kdiff3.exe"

Además también será necesario configurar que la herramienta configurada no cree archivos de backup

git config --global mergetool.keepBackup false

Ni que el propio KDiff3 cree igualmente ficheros .orig de backup, más info en http://stackoverflow.com/a/1251871

En cualquier caso, los ficheros .orig parecen un serio candidato a ser ignorados con .gitignore

Un saludo!

No hay comentarios:

Publicar un comentario