Jak ustawić Meld jako git Mergetool


97

Ustawiłem:

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

W "git connectetool" pisze:

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

Próbowałem też:

  • / c / Progra ~ 2 / meld / bin /
  • „/ c / Pliki programów (x86) / meld / bin /”
  • „c: / Pliki programów (x86) / meld / bin /”

wynik jest taki sam.

kiedy idę do C: / Pliki programów (x86) / meld / bin / i uruchamiam

python meld

narzędzie działa.




Powiązane: „Konfiguracja narzędzia porównywania z rozszerzeniem .gitconfig”: stackoverflow.com/a/6412645/4561887 (do meldunku, po prostu zastąpić vimdiffz meldtą odpowiedź)
Gabriel Staples

Prosimy o komentarz i zagłosowanie w sprawie upstream, aby przyszły użytkownik nie musiał się nawet o to martwić.
Franklin Yu

Odpowiedzi:


72

Możesz użyć pełnych ścieżek uniksowych, takich jak:

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

To jest opisane w sekcjiJak uzyskać połączenie pracujące z git w systemie Windows

Lub możesz zastosować podejście opakowujące opisane w sekcji „ Używanie połączenia z Git w systemie 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

Ze skryptem meld.sh:

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

abergmeier wspomina w komentarzach :

Musiałem zrobić:

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

Zauważ, że meldc.exe został specjalnie stworzony do wywoływania w systemie Windows za pośrednictwem konsoli. W związku z tym meld.exe nie będzie działać poprawnie.


CenterOrbit wspomina w komentarzach dla Mac OS, aby zainstalować homebrew , a następnie:

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

3
Dla mnie musiałem zrobić:git config --global merge.tool meld git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe
abergmeier

@abergmeier Ok, dołączyłem Twój komentarz do odpowiedzi, aby uzyskać lepszą widoczność.
VonC

Rozwiązanie @ abergmeier działa. Ponadto, w tabsystemie Windows git bash, jeśli zrobisz klucz, zasugeruje ścieżkę, więc łatwo będzie ją poprawnie ustawić.
Aswin Kumar

3
Do Twojej wiadomości, w systemie Mac OSx: zainstaluj homebrew , a następnie:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit

@CenterOrbit OK, dołączyłem Twój komentarz do odpowiedzi, aby uzyskać lepszą widoczność.
VonC

24

To działało dla mnie na Windows 8.1 i 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"podczas korzystania z PowerShell
Michael Blake

czasami możesz zrestartować git gui po git config (aby wprowadzić zmianę)
Yohanes AI

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\"

Należy pamiętać, że jest to opuszczone pytanie. Dawno nie zajmowałem się narzędziami scalającymi, więc nawet jeśli Twoja odpowiedź jest najlepsza, nie mogę tego udowodnić i oznaczyć jako odpowiedzi.
Paul

Witam, próbowałem i działa świetnie. W moim przypadku brakowało
``

Meld nie zapisał poprawnie scalonych plików podczas korzystania z tego szablonu wiersza polecenia. Odwiedź stackoverflow.com/a/40777256/768795, aby uzyskać odpowiedź, która działa.
Thomas W

6

Myślę, że to mergetool.meld.pathpowinno wskazywać bezpośrednio na plik wykonywalny łączenia. Zatem polecenie, które chcesz, to:

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

5

Żadna z pozostałych odpowiedzi nie zadziałała dla mnie, prawdopodobnie dzięki wypróbowaniu kombinacji wszystkich z nich. Udało mi się dostosować tę zaakceptowaną odpowiedź do pracy z połączeniem. To teraz działa dla mnie z git 1.9.4, meld 3.14.0 i Windows 8.1.

Edytuj ~ / .gitconfig, aby wyglądał następująco:

[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

Po zainstalowaniu go http://meldmerge.org/ musiałem powiedzieć gitowi, gdzie to jest:

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”

I to wydaje się działać. Łączenie i porównywanie za pomocą „git difftool” lub „git connectetool”

Jeśli ktoś napotyka problem, taki jak awaria Meld po uruchomieniu (wskazanie problemu w Pythonie), musisz skonfigurować Meld / lib do zmiennej środowiskowej systemu, jak poniżej C:\Program Files (x86)\Meld\lib


0

W przypadku okien dodaj ścieżkę do połączenia, jak poniżej:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.