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.

Pablo
fuente
Copie y pegue partes de .gitconfig: marcin-chwedczuk.github.io/use-meld-as-git-merge-diff-tool
csharpfolk
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
VonC
fuente
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"
viejo mago
fuente
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\"
Tomasz Maj
fuente
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
dbn
fuente
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
cjmcdonn
fuente
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

IA de Yohanes
fuente
0

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

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Sekhar T
fuente