So legen Sie Meld als Git-Mergetool fest


95

Ich habe festgelegt:

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

Auf "git mergetool" schreibt es:

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

Ich habe auch versucht:

  • / c / Progra ~ 2 / meld / bin /
  • "/ c / Programme (x86) / meld / bin /"
  • "c: / Programme (x86) / meld / bin /"

Ergebnis ist das gleiche.

wenn ich zu C: / Programme (x86) / meld / bin / gehe und starte

python meld

Das Tool wird ausgeführt.




Verwandte: "Konfigurieren der Diff - Tool mit .gitconfig": stackoverflow.com/a/6412645/4561887 (für meld, ersetzen Sie einfach vimdiffmit meldin dieser Antwort)
Gabriel Staples

Bitte kommentieren Sie das Upstream-Problem und stimmen Sie ab, damit sich zukünftige Benutzer nicht einmal darum kümmern müssen.
Franklin Yu

Antworten:


71

Sie können vollständige Unix-Pfade verwenden wie:

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

Dies ist beschrieben in " Wie man Melde mit Git unter Windows zum Laufen bringt "

Oder Sie können den Wrapper-Ansatz verwenden, der unter " Meldung mit Git unter Windows verwenden " beschrieben ist.

# 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

Mit einem Skript meld.sh:

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

Abergmeier erwähnt in den Kommentaren :

Ich musste es tun:

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

Beachten Sie, dass meldc.exe speziell für den Aufruf unter Windows über die Konsole erstellt wurde. Somit funktioniert meld.exe nicht richtig.


CenterOrbit erwähnt in den Kommentaren, dass Mac OS Homebrew installiert , und dann:

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

3
Für mich musste ich tun:git config --global merge.tool meld git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe
abergmeier

@abergmeier Ok, ich habe Ihren Kommentar zur besseren Sichtbarkeit in die Antwort aufgenommen.
VonC

@ abergmeiers Lösung funktioniert. Wenn Sie unter Windows Git Bash die tabTaste drücken, wird der Pfad vorgeschlagen, sodass es einfach ist, ihn richtig zu machen.
Aswin Kumar

3
Zu Ihrer Information, unter Mac OSx: Installieren Sie Homebrew , dann:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit

@CenterOrbit OK, ich habe Ihren Kommentar zur besseren Sichtbarkeit in die Antwort aufgenommen.
VonC

24

Dies funktionierte bei mir unter Windows 8.1 und 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"bei Verwendung von 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\"

Bitte beachten Sie, dass dies eine aufgegebene Frage ist. Ich habe mich lange nicht mehr mit Zusammenführungswerkzeugen befasst. Selbst wenn Ihre Antwort die beste ist, kann ich sie nicht beweisen und als Antwort markieren.
Paul

Hallo, ich habe es versucht und es funktioniert super. In meinem Fall war es das 'cmd', das fehlte, um
meld

Meld hat zusammengeführte Dateien bei Verwendung dieser Befehlszeilenvorlage nicht korrekt für mich gespeichert. Eine funktionierende Antwort finden Sie unter stackoverflow.com/a/40777256/768795 .
Thomas W

6

Ich denke, das mergetool.meld.pathsollte direkt auf die ausführbare Meldung verweisen. Der gewünschte Befehl lautet also:

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

5

Keine der anderen Antworten hier hat für mich funktioniert, möglicherweise weil ich versucht habe, alle zu kombinieren. Ich konnte diese akzeptierte Antwort anpassen , um mit meld zu arbeiten. Dies funktioniert jetzt für mich mit Git 1.9.4, Meld 3.14.0 und Windows 8.1.

Bearbeiten Sie ~ / .gitconfig wie folgt:

[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

Nach der Installation http://meldmerge.org/ musste ich git sagen, wo es war:

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”

Und das scheint zu funktionieren. Sowohl Zusammenführen als auch Unterscheiden mit "git difftool" oder "git mergetool"

Wenn jemand nach dem Start mit einem Problem wie Meld abstürzt (Problemanzeige mit Python), müssen Sie Meld / lib für Ihre Systemumgebungsvariable wie folgt einrichten C:\Program Files (x86)\Meld\lib


0

Für Windows ist der Pfad für das Verschmelzen wie folgt:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.