En Linux, mi herramienta de combinación favorita es Meld, y no he tenido problemas para usarla o configurarla para que funcione con Git. Sin embargo, en Windows ha sido una historia diferente.
Primero, instalé Meld de un paquete que encontré aquí: https://code.google.com/p/meld-installer/
Luego, configuré mi .gitconfig de esa manera para admitir Meld como la herramienta mergetool predeterminada
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Entonces, cuando tengo un conflicto, uso git difftool y Meld, de hecho, abre. Sin embargo, las rutas a los archivos que escribe Git para pasar a la herramienta de diferencias son incorrectas. Por ejemplo, aunque Git genera los archivos BASE, LOCAL y REMOTO en el directorio del repositorio (la ubicación desde la que llamé git mergetool), Meld intenta abrir cada uno de esos archivos en el directorio del ejecutable.
En lugar de abrir C: \ repo \ roses.txt.LOCAL.2760.txt, Meld intenta abrir C: \ Archivos de programa (x86) \ Meld \ meld \ roses.txt.LOCAL.2760.txt.
¿Alguien se ha encontrado con esto antes o sabe cómo configurar Git / Meld para que funcione correctamente en Windows?
Respuestas:
¿Por qué no usas git bash para Windows?
Después de instalar meld simplemente:
¡Eso es todo!
fuente
git config --global mergetool.meld.cmd '"C:\Program Files (x86)\Meld\Meld.exe" $BASE $LOCAL $REMOTE -o $MERGED'
Cannot import: GTK+
yDLL load failed
.Schuess, ¡tenga cuidado con el carácter de espacio en los directorios!
fuente
cmd
sinpath
y usé comillas inversas en lugar de comillas simples, comillas simples en lugar de comillas dobles.Program_Files_x86 -> 'Program Files (x86)/'
y usé[mergetool "meld"] path = /mnt/c/Program_Files_x86/Meld/Meld.exe
Tuve exactamente el mismo problema y descubrí que tenía que usar la fuerza bruta para que funcionara. Esto es lo que puse en mi archivo .gitconfig. (Tenga en cuenta que mi ejecutable meld está en una ubicación diferente)
fuente
meld
archivo en elbin
directorio (en realidad cambié el nombre del archivomeld.py
) y funcionó sin problemas.Ventanas:
Puede usar estos dos comandos ( como dice Arugin ), usando la ruta adecuada a Meld.exe:
O simplemente puede editar su
C:\Users\YOUR_USER_NAME\.gitconfig
archivo directamente y agregar lo siguiente al final:Ahora llame
git difftool
a Git Bash para Windows y Meld se abrirá como su visor de difftool predeterminado.Linux:
ACTUALIZACIÓN 20 de septiembre de 2019:
- También podría poner la versión de Linux aquí para mi propia referencia en un solo lugar, si nada más:
Para Linux también es muy fácil:
Luego agregue al final del archivo .gitconfig:
¡Eso es!
git difftool
ahora funciona en Linux Ubuntu!Relacionado:
fuente
Encontré una solución en un informe de error en el instalador de meld, en esta página:
https://code.google.com/p/meld-installer/issues/detail?id=11
Hasta donde tengo entendido, el problema es que el programa meld.exe (que ejecuta meld a través del intérprete de Python) establece innecesariamente el directorio de trabajo del comando en el de meld.exe. Esto hace que las rutas relativas se interpreten incorrectamente cuando se pasan como argumentos de línea de comando.
La solución es reemplazar el meld.exe proporcionado por uno generado compilando el archivo meld.ahk, usando AHK2EXe (script AutoHotKey -> exe). Simplemente descargue el script más abajo en la página, ya que se han publicado algunas versiones allí.
fuente
Yo también enfrenté un problema similar. El sistema operativo utilizado es Windows 10 y los siguientes cambios funcionaron para mí. Parece más como un problema de ruta.
fuente
Por alguna razón, en Windows 10, la variable de entorno PATH no se pudo configurar correctamente durante la instalación, por lo que se genera una extraña excepción que dice que no puede encontrar algunos .dll que están en "C: \ Archivos de programa (x86) / Directorio Meld / bin ".
Una solución para mí fue ejecutar en git bash:
O agregar a Windows PATH
fuente
Ninguna de las respuestas funcionó para mí. Terminé con esto en el archivo .gitconfig:
Después de un
git merge mybranch
final con conflictos, simplemente escribegit mergetool
y se abre la combinación. Después de guardar, debe confirmar en git y los conflictos se resuelven.Por alguna razón, esto solo funcionó con Meld 3.18.x, Meld 3.20.x me da un error.
fuente
Después de intentar todo lo anterior, configurar Meld para que se ejecute como administrador funcionó para mí.
Run this program as an administrator
casilla de verificaciónLos errores que recibí se referían a archivos temporales como
c:\windows\temp\meld-*
, que no se estaban creando. Elevar los permisos de Meld parece funcionar, ya que ahora funciona con ambosgit difftool
y se ejecuta manualmente dentro de Meld.fuente