Comment définir Meld comme git mergetool

95

J'ai mis:

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

Sur "git mergetool", il écrit:

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

J'ai essayé aussi:

  • / c / Progra ~ 2 / meld / bin /
  • "/ c / Fichiers programme (x86) / meld / bin /"
  • "c: / Program files (x86) / meld / bin /"

le résultat est le même.

quand je vais à C: / Program files (x86) / meld / bin / et que je lance

python meld

l'outil s'exécute.

Paul
la source
Copier coller des parties de .gitconfigfrom: marcin-chwedczuk.github.io/use-meld-as-git-merge-diff-tool
csharpfolk
Connexes: «Configuration de l'outil de comparaison avec .gitconfig»: stackoverflow.com/a/6412645/4561887 (pour meld, remplacez simplement vimdiffpar melddans cette réponse)
Gabriel Staples
Veuillez commenter et voter pour le problème en amont afin que les futurs utilisateurs n'aient même pas à s'inquiéter à ce sujet.
Franklin Yu

Réponses:

71

Vous pouvez utiliser des chemins Unix complets comme:

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

C'est ce qui est décrit dans " Comment faire fonctionner meld avec git sous Windows "

Ou vous pouvez adopter l'approche wrapper décrite dans « Utiliser Meld avec Git sous 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

Avec un script meld.sh:

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

abergmeier mentionne dans les commentaires :

Je devais faire:

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

Notez que meldc.exe a été spécialement créé pour être appelé sous Windows via la console. Ainsi meld.exe ne fonctionnera pas correctement.


CenterOrbit mentionne dans les commentaires pour Mac OS d'installer homebrew , puis:

brew cask install meld
git config --global merge.tool meld
git config --global  diff.guitool meld
VonC
la source
3
Pour moi, je devais faire:git config --global merge.tool meld git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe
abergmeier
@abergmeier Ok, j'ai inclus votre commentaire dans la réponse pour plus de visibilité.
VonC
La solution de @ abergmeier fonctionne. De plus, sur windows git bash, si vous faites une tabclé, il suggérera le chemin afin qu'il soit facile de faire les choses correctement.
Aswin Kumar
3
Pour info, sur Mac OSx: installez homebrew , puis:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit
@CenterOrbit OK, j'ai inclus votre commentaire dans la réponse pour plus de visibilité.
VonC
24

Cela a fonctionné pour moi sur Windows 8.1 et Windows 10.

git config --global mergetool.meld.path "/c/Program Files (x86)/meld/meld.exe"
vieux sorcier
la source
6
git config --global mergetool.meld.path "c:\Program Files (x86)\meld\meld.exe"lors de l'utilisation de PowerShell
Michael Blake
11

meld 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
la source
Veuillez noter qu'il s'agit d'une question abandonnée. Je n'ai pas traité des outils de fusion depuis longtemps, donc même si votre réponse est la meilleure, je ne peux pas le prouver et marquer comme réponse.
Paul
Bonjour, je l'ai essayé et cela fonctionne très bien. Dans mon cas, c'était le 'cmd' qui manquait pour appeler correctement
meld
Meld n'a pas enregistré correctement les fichiers fusionnés pour moi lors de l'utilisation de ce modèle de ligne de commande. Voir stackoverflow.com/a/40777256/768795 pour une réponse qui fonctionne.
Thomas W
6

Je pense que cela mergetool.meld.pathdevrait pointer directement vers l'exécutable de fusion. Ainsi, la commande que vous souhaitez est:

git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld
dbn
la source
5

Aucune des autres réponses ici n'a fonctionné pour moi, peut-être en essayant une combinaison de toutes. J'ai pu adapter cette réponse acceptée pour travailler avec meld. Cela fonctionne maintenant pour moi avec git 1.9.4, meld 3.14.0 et Windows 8.1.

Modifiez ~ / .gitconfig pour qu'il ressemble à:

[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
la source
2

Après l'avoir installé http://meldmerge.org/, j'ai dû dire à git où il se trouvait:

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”

Et cela semble fonctionner. Fusion et comparaison avec «git difftool» ou «git mergetool»

Si quelqu'un confronté à un problème tel que Meld plante après le démarrage (indication de problème avec python), vous devez configurer Meld / lib dans votre variable d'environnement système comme ci-dessous C:\Program Files (x86)\Meld\lib

Yohanes AI
la source
0

Pour Windows, ajoutez le chemin de fusion comme ci-dessous:

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