Unter Linux ist Meld mein bevorzugtes Merge-Tool, und ich hatte keine Probleme, es für die Verwendung mit Git zu verwenden oder zu konfigurieren. In Windows war dies jedoch eine andere Geschichte.
Zuerst habe ich Meld von einem Bundle installiert, das ich hier gefunden habe: https://code.google.com/p/meld-installer/
Dann habe ich meine .gitconfig so konfiguriert, dass Meld als Standard-Mergetool unterstützt wird
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Wenn ich also einen Konflikt habe, mache ich ein Difftool und Meld öffnet sich tatsächlich. Die Pfade zu den Dateien, die Git schreibt, um sie an das Diff-Tool zu übergeben, sind jedoch falsch. Obwohl Git beispielsweise die Dateien BASE, LOCAL und REMOTE im Repository-Verzeichnis (dem Speicherort, von dem aus ich git mergetool aufgerufen habe) generiert, versucht Meld, jede dieser Dateien im Verzeichnis der ausführbaren Datei zu öffnen.
Anstatt C: \ repo \ roses.txt.LOCAL.2760.txt zu öffnen, versucht Meld, C: \ Programme (x86) \ Meld \ meld \ meld \ roses.txt.LOCAL.2760.txt zu öffnen.
Hat jemand dies schon einmal erlebt oder weiß, wie man Git / Meld so konfiguriert, dass es unter Windows richtig funktioniert?
Antworten:
Warum verwenden Sie Git Bash nicht für Windows?
Nach der Installation verschmelzen einfach:
Das ist alles!
quelle
git config --global mergetool.meld.cmd '"C:\Program Files (x86)\Meld\Meld.exe" $BASE $LOCAL $REMOTE -o $MERGED'
Cannot import: GTK+
undDLL load failed
.Schuess, pass auf den Leerzeichencharakter in Verzeichnissen auf!
quelle
cmd
ohnepath
und verwendet Backticks anstelle von einfachen Anführungszeichen, Apostrophe statt Schrägstrich-doppelte Anführungszeichen.Program_Files_x86 -> 'Program Files (x86)/'
und verwendet[mergetool "meld"] path = /mnt/c/Program_Files_x86/Meld/Meld.exe
Ich hatte genau das gleiche Problem und stellte fest, dass ich mich brutal anstrengen musste, um es zum Laufen zu bringen. Folgendes habe ich in meine .gitconfig-Datei eingefügt. (Beachten Sie, dass sich meine ausführbare Meldungsdatei an einem anderen Ort befindet.)
quelle
meld
Datei imbin
Verzeichnis verwendet (ich habe die Datei tatsächlich umbenanntmeld.py
) und es hat ohne Probleme funktioniert.Windows:
Sie können diese beiden Befehle verwenden ( wie Arugin sagt ) - unter Verwendung des richtigen Pfads zu Meld.exe:
ODER Sie können Ihre
C:\Users\YOUR_USER_NAME\.gitconfig
Datei einfach direkt bearbeiten und am Ende Folgendes hinzufügen:Rufen Sie jetzt
git difftool
Git Bash für Windows auf und Meld wird als Standard-Difftool-Viewer geöffnet.Linux:
UPDATE 20. September 2019:
- Ich könnte die Linux-Version auch hier als Referenz an einer Stelle platzieren, wenn sonst nichts:
Für Linux ist es auch super einfach:
Fügen Sie dann am Ende der .gitconfig-Datei Folgendes hinzu:
Das ist es!
git difftool
funktioniert jetzt unter Linux Ubuntu!Verbunden:
quelle
Ich habe eine Lösung in einem Fehlerbericht im Meld-Installationsprogramm auf dieser Seite gefunden:
https://code.google.com/p/meld-installer/issues/detail?id=11
Soweit ich weiß, besteht das Problem darin, dass das Programm meld.exe (das meld über den Python-Interpreter ausführt) das Arbeitsverzeichnis des Befehls unnötigerweise auf das von meld.exe setzt. Dies führt dazu, dass relative Pfade falsch interpretiert werden, wenn sie als Befehlszeilenargumente übergeben werden.
Die Lösung besteht darin, die bereitgestellte meld.exe durch eine zu ersetzen, die durch Kompilieren der Datei meld.ahk mit AHK2EXe (AutoHotKey-Skript -> exe) generiert wurde. Laden Sie einfach das Skript herunter, das am weitesten unten auf der Seite liegt, da dort einige Versionen veröffentlicht wurden.
quelle
Auch ich hatte ein ähnliches Problem. Das verwendete Betriebssystem ist Windows 10, und die folgenden Änderungen haben bei mir funktioniert. Es scheint eher ein Pfadproblem zu sein
quelle
Aus irgendeinem Grund konnte in Windows 10 die Umgebungsvariable PATH während der Installation nicht richtig festgelegt werden. Daher wird eine seltsame Ausnahme ausgelöst, die besagt, dass einige DLLs unter "C: \ Programme (x86) /" nicht gefunden werden können. Meld / bin "-Verzeichnis.
Eine Problemumgehung für mich war, in Git Bash ausführen:
Oder zu Windows PATH hinzufügen
quelle
Keine der Antworten hat bei mir funktioniert. Ich habe dies in der .gitconfig-Datei gefunden:
Nach einem
git merge mybranch
Ende mit Konflikten geben Sie einfach eingit mergetool
und verschmelzen öffnet. Nach dem Speichern müssen Sie in git festschreiben und die Konflikte werden gelöst.Aus irgendeinem Grund funktionierte dies nur mit Meld 3.18.x, Meld 3.20.x gibt mir einen Fehler.
quelle
Nachdem ich alle oben genannten Schritte ausprobiert hatte, funktionierte es für mich, Meld als Administrator auszuführen.
Run this program as an administrator
KontrollkästchenDie Fehler, die ich erhalten habe, referenzierten temporäre Dateien wie
c:\windows\temp\meld-*
, die nicht erstellt wurden. Das Erhöhen der Meld-Berechtigungen scheint den Trick zu tun, da es jetzt mit beiden funktioniertgit difftool
und manuell in Meld ausgeführt wird.quelle