W Linuksie moim ulubionym narzędziem do scalania jest Meld i nie miałem problemów z używaniem lub konfigurowaniem go do pracy z Git. Jednak w systemie Windows było inaczej.
Najpierw zainstalowałem Meld z pakietu, który znalazłem tutaj: https://code.google.com/p/meld-installer/
Następnie skonfigurowałem mój plik .gitconfig tak, aby obsługiwał Meld jako domyślne narzędzie scalające
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Tak więc, kiedy mam konflikt, robię git difftool, a Meld faktycznie się otwiera. Jednak ścieżki do plików zapisywanych przez Git w celu przekazania do narzędzia porównywania są nieprawidłowe. Na przykład, mimo że Git generuje pliki BASE, LOCAL i REMOTE w katalogu repozytorium (lokalizacja, z której nazwałem git Mergetool), Meld próbuje otworzyć każdy z tych plików w katalogu pliku wykonywalnego.
Zamiast otwierać C: \ repo \ roses.txt.LOCAL.2760.txt, Meld próbuje otworzyć C: \ Program Files (x86) \ Meld \ meld \ roses.txt.LOCAL.2760.txt.
Czy ktoś napotkał to wcześniej lub wie, jak skonfigurować Git / Meld, aby działał poprawnie w systemie Windows?
Odpowiedzi:
Dlaczego nie używasz git bash dla Windows?
Po zainstalowaniu połączenia po prostu:
To wszystko!
źródło
git config --global mergetool.meld.cmd '"C:\Program Files (x86)\Meld\Meld.exe" $BASE $LOCAL $REMOTE -o $MERGED'
Cannot import: GTK+
iDLL load failed
.Schuess, uważaj na znaki spacji w katalogach!
źródło
cmd
bezpath
i użyłem apostrofów zamiast pojedynczych cudzysłowów, pojedynczych cudzysłowów zamiast ukośników.Program_Files_x86 -> 'Program Files (x86)/'
i używaniu[mergetool "meld"] path = /mnt/c/Program_Files_x86/Meld/Meld.exe
Miałem dokładnie ten sam problem i stwierdziłem, że muszę brutalnie forsować, aby to zadziałało. Oto, co umieściłem w moim pliku .gitconfig. (Zauważ, że mój plik wykonywalny połączenia znajduje się w innej lokalizacji)
źródło
meld
pliku wbin
katalogu (właściwie zmieniłem nazwę plikumeld.py
) i zadziałało bez problemu.Okna:
Możesz użyć tych dwóch poleceń ( jak mówi Arugin ) - używając odpowiedniej ścieżki do Meld.exe:
LUB możesz po prostu edytować
C:\Users\YOUR_USER_NAME\.gitconfig
plik bezpośrednio i dodać na jego końcu:Teraz zadzwoń
git difftool
w Git Bash dla Windows, a Meld otworzy się jako domyślna przeglądarka difftool.Linux:
AKTUALIZACJA 20 września 2019 r .:
- Równie dobrze mógłbym umieścić tutaj wersję Linuksa również dla własnego odniesienia w jednym miejscu, jeśli nic innego:
W przypadku Linuksa jest to również bardzo łatwe:
Następnie dodaj na dole pliku .gitconfig:
Otóż to!
git difftool
teraz działa na Linuksie Ubuntu!Związane z:
źródło
Znalazłem rozwiązanie w raporcie o błędzie w instalatorze meld, na tej stronie:
https://code.google.com/p/meld-installer/issues/detail?id=11
O ile rozumiem, problem polega na tym, że program meld.exe (który działa meld przez interpreter języka Python) niepotrzebnie ustawia katalog roboczy polecenia na katalog meld.exe. Powoduje to niepoprawną interpretację ścieżek względnych, gdy są przekazywane jako argumenty wiersza poleceń.
Rozwiązaniem jest zastąpienie dostarczonego meld.exe plikiem wygenerowanym przez kompilację pliku meld.ahk przy użyciu AHK2EXe (skrypt AutoHotKey -> exe). Wystarczy pobrać skrypt znajdujący się najdalej na stronie, ponieważ zostało tam opublikowanych kilka wersji.
źródło
Ja też stanąłem przed podobnym problemem, używanym systemem operacyjnym jest Windows 10 i poniższe zmiany zadziałały. Wygląda bardziej na problem ze ścieżką
źródło
Z jakiegoś powodu w systemie Windows 10 zmienna środowiskowa PATH nie mogła zostać poprawnie ustawiona podczas instalacji, więc pojawia się dziwny wyjątek, mówiąc, że nie jest w stanie znaleźć niektórych plików .dll znajdujących się w folderze „C: \ Program Files (x86) / Katalog Meld / bin ”.
Obejściem dla mnie było wykonanie w git bash:
Lub dodaj do systemu Windows PATH
źródło
Żadna z odpowiedzi nie pomogła. Skończyło się na tym w pliku .gitconfig:
Po
git merge mybranch
zakończeniu z konfliktami po prostu wpisujeszgit mergetool
i łączysz otwarte. Po zapisaniu musisz zatwierdzić w git, a konflikty zostaną rozwiązane.Z jakiegoś powodu działało to tylko z Meldem 3.18.x, Meld 3.20.x daje mi błąd.
źródło
Po wypróbowaniu wszystkich powyższych, ustawienie Meld do pracy jako administrator zadziałało dla mnie.
Run this program as an administrator
wyboruBłędy, które otrzymałem
c:\windows\temp\meld-*
, dotyczyły plików tymczasowych, takich jak te , które nie były tworzone. Podniesienie uprawnień Meld wydaje się załatwiać sprawę, ponieważ działa teraz z obydwomagit difftool
i działa ręcznie w Meld.źródło