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.

Paweł
źródło
Skopiuj wklej części .gitconfigz: marcin-chwedczuk.github.io/use-meld-as-git-merge-diff-tool
csharpfolk
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
VonC
źródło
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"
oldwizard
źródło
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\"
Tomasz Maj
źródło
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
dbn
źródło
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
cjmcdonn
źródło
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

Yohanes AI
źródło
0

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

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Sekhar T
źródło