HOWTO · Git

Configurar la herramienta SourceGear DiffMerge para Git

En este artículo, discutiremos el proceso de configuración de Git para usar DiffMerge de SourceGear como la herramienta diferencial predeterminada.

Este artículo discutirá la configuración de Git para usar DiffMerge de SourceGear como la difftool predeterminada. Esta herramienta nos permite comprender fácilmente los conflictos de fusión con imágenes mejoradas en comparación con la difftool predeterminada de Git.

Es la herramienta ideal para una combinación de 3 vías, ya que admite la comparación de archivos de 3 vías.

Podemos ver el estado anterior de un archivo, el estado actual y el resultado después de una fusión. Debe descargar e instalar DiffMerge desde el sitio web oficial de SourceGear.

Configurar DiffMerge en Windows

Para configurar Git para usar la herramienta DiffMerge de forma predeterminada, agréguelo a su archivo .gitconfig.

 [diff]
     tool = DiffMerge
 [difftool "DiffMerge"]
     cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' "$LOCAL" "$REMOTE"
 [merge]
     tool = DiffMerge
 [mergetool "DiffMerge"]
     cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' -merge -result="$PWD/$MERGED" "$PWD/$LOCAL" "$PWD/$BASE" "$PWD/$REMOTE"
     trustExitCode = true
 [mergetool]
     keepBackup = false

Para los parámetros del argumento de comparación, tenemos:

  1. $LOCAL, que es el archivo original.
  2. $REMOTE, que es el archivo modificado.

Puede ejecutar los comandos git difftool y git mergetool en Git Bash para abrir DiffMerge.

Alternativamente, puede ejecutar los siguientes comandos en su símbolo del sistema para actualizar el archivo .gitconfig.

C:\> git config --global diff.tool diffmerge
C:\> git config --global difftool.diffmerge.cmd
    "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe
        \"$LOCAL\" \"$REMOTE\""

C:\> git config --global merge.tool diffmerge
C:\> git config --global mergetool.diffmerge.trustExitCode true
C:\> git config --global mergetool.diffmerge.cmd
    "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe
        -merge -result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\""

Configurar DiffMerge en Mac OS

El proceso de configuración de Git para usar DiffMerge en Mac OS es quizás el más sencillo. Asegúrese de tener el directorio a continuación.

/usr/local/bin/diffmerge

Ejecute los siguientes comandos para actualizar su archivo .gitconfig y pruébelo.

git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/usr/local/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/local/bin/diffmerge --nosplash \"\$LOCAL\" \"\$REMOTE\""

Podemos ejecutar el comando git config --global -e para inspeccionar nuestro archivo .gitconfig. Debería verse algo como esto:

[diff]
	tool = diffmerge

[merge]
	tool = diffmerge

...

[mergetool "diffmerge"]
	cmd = /usr/local/bin/diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
	trustExitCode = true
[mergetool]
	keepBackup = false
[difftool "diffmerge"]
	cmd = /usr/local/bin/diffmerge --nosplash \"$LOCAL\" \"$REMOTE\"

Configurar DiffMerge en Ubuntu

La configuración en Ubuntu es muy similar a Mac OS. Usaremos los mismos comandos pero cambiaremos la ubicación de instalación.

Aquí están los comandos.

git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/usr/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/bin/diffmerge --nosplash \"\$LOCAL\" \"\$REMOTE\""

Eso es practicamente todo. Ahora podemos ejecutar los siguientes comandos para probarlo.

$ git mergetool
$ git difftool

En resumen, si desea configurar Git para usar la herramienta DiffMerge de SourceGear, deberá actualizar su archivo .gitconfig con los comandos enumerados según su sistema operativo.