Cómo configurar Meld como git mergetool


95

He establecido:

git config --global merge.tool meld
git config --global mergetool.meld.path c:/Progra~2/meld/bin/

En "git mergetool" escribe:

Hit return to start merge resolution tool (meld):
The merge tool meld is not available as 'c:/Progra~2/meld/bin/'

También he probado:

  • / c / Progra ~ 2 / meld / bin /
  • "/ c / Archivos de programa (x86) / meld / bin /"
  • "c: / Archivos de programa (x86) / meld / bin /"

el resultado es el mismo.

cuando voy a C: / Archivos de programa (x86) / meld / bin / y ejecuto

python meld

la herramienta funciona.




Relacionado: "Configuración de la herramienta de diferencias con .gitconfig": stackoverflow.com/a/6412645/4561887 (para meld, simplemente reemplace vimdiffcon melden esta respuesta)
Gabriel Staples

Por favor comente y vote por el problema de upstream para que el futuro usuario ni siquiera tenga que preocuparse por esto.
Franklin Yu

Respuestas:


71

Puede usar rutas completas de Unix como:

PATH=$PATH:/c/python26
git config --global merge.tool meld
git config --global mergetool.meld.path /c/Program files (x86)/meld/bin/meld

Esto es lo que se describe en " Cómo hacer que meld funcione con git en Windows "

O puede adoptar el enfoque de contenedor descrito en " Usar Meld con Git en Windows "

# set up Meld as the default gui diff tool
$ git config --global  diff.guitool meld

# set the path to Meld
$ git config --global mergetool.meld.path C:/meld-1.6.0/Bin/meld.sh

Con un guión meld.sh:

#!/bin/env bash
C:/Python27/pythonw.exe C:/meld-1.6.0/bin/meld $@

abergmeier menciona en los comentarios :

Tenía que hacer:

git config --global merge.tool meld
git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe

Tenga en cuenta que meldc.exe se creó especialmente para ser invocado en Windows a través de la consola. Por lo tanto, meld.exe no funcionará correctamente.


CenterOrbit menciona en los comentarios que Mac OS instale homebrew , y luego:

brew cask install meld
git config --global merge.tool meld
git config --global  diff.guitool meld

3
Para mí, tuve que hacer:git config --global merge.tool meld git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe
abergmeier

@abergmeier Ok, he incluido su comentario en la respuesta para mayor visibilidad.
VonC

La solución de @ abergmeier funciona. Además, en Windows git bash, si pulsa la tabtecla, le sugerirá la ruta para que sea fácil hacerlo bien.
Aswin Kumar

3
FYI, en Mac OSx: instale homebrew , luego:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit

@CenterOrbit OK, he incluido su comentario en la respuesta para una mayor visibilidad.
VonC

24

Esto funcionó para mí en Windows 8.1 y Windows 10.

git config --global mergetool.meld.path "/c/Program Files (x86)/meld/meld.exe"

6
git config --global mergetool.meld.path "c:\Program Files (x86)\meld\meld.exe"al usar PowerShell
Michael Blake

11

fusionar 3.14.0

[merge]
    tool = meld
[mergetool "meld"]
    path = C:/Program Files (x86)/Meld/Meld.exe
    cmd = \"C:/Program Files (x86)/Meld/Meld.exe\" --diff \"$BASE\" \"$LOCAL\" \"$REMOTE\" --output \"$MERGED\"

Tenga en cuenta que esta es una pregunta abandonada. No me he ocupado de las herramientas de combinación durante mucho tiempo, por lo que incluso si su respuesta es la mejor, no puedo probarla y marcarla como respuesta.
Paul

Hola, lo he probado y funciona muy bien. En mi caso, era el 'cmd' el que faltaba para llamar correctamente a
meld

Meld no guardó los archivos combinados correctamente cuando usé esta plantilla de línea de comandos. Consulte stackoverflow.com/a/40777256/768795 para obtener una respuesta que funcione.
Thomas W

6

Creo que mergetool.meld.pathdebería apuntar directamente al ejecutable meld. Por lo tanto, el comando que desea es:

git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld

5

Ninguna de las otras respuestas aquí funcionó para mí, posiblemente por probar una combinación de todas. Pude adaptar esta respuesta aceptada para trabajar con meld. Esto ahora me funciona con git 1.9.4, meld 3.14.0 y windows 8.1.

Edite ~ / .gitconfig para que se vea así:

[diff]
    tool = meld
    guitool = meld
[mergetool "meld"]
    path = c:/Program Files (x86)/Meld/Meld.exe
[difftool "meld"]
    path = c:/Program Files (x86)/Meld/Meld.exe

2

Después de instalarlo http://meldmerge.org/ tuve que decirle a git dónde estaba:

git config --global merge.tool meld
git config --global diff.tool meld
git config --global mergetool.meld.path “C:\Program Files (x86)\Meld\meld.exe”

Y eso parece funcionar. Combinando y diferenciando con "git difftool" o "git mergetool"

Si alguien enfrenta un problema como Meld se bloquea después de comenzar (indicación de problema con python), entonces debe configurar Meld / lib en la variable de entorno de su sistema como se muestra a continuación C:\Program Files (x86)\Meld\lib


0

Para Windows, agregue la ruta para meld es la siguiente:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.