Jak ustawić Meld jako git mergetool

Ustawiłem:

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

Na "git mergetool" 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 również:

  • /c / Progra~2 / meld / bin /
  • "/ C / Program files (x86) / meld / bin / "
  • "c:/Program files (x86)/meld/bin / "

Wynik jest taki sam.

Kiedy idę do C:/Program files (x86) / meld / bin / and run

python meld

Narzędzie działa.

Author: Paul, 2012-10-18

8 answers

Możesz używać 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 "Jak uruchomić meld z Gitem w systemie Windows "

Lub możesz przyjąć podejście wrappera opisane w "użyj Meld z Git na 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, aby być wywoływane w systemie Windows przez konsolę. W ten sposób się zlać.exe nie będzie działać poprawnie.


Centerbit wspomina w komentarze dla Mac OS do zainstalowania homebrew , a następnie:

brew cask install meld
git config --global merge.tool meld
git config --global  diff.guitool meld
 75
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-08 10:29:19

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"
 26
Author: oldwizard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-06 11:18:30

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\"
 12
Author: Tomasz Maj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-27 10:20:05

Myślę, że mergetool.meld.path powinien wskazywać bezpośrednio na plik wykonywalny meld. Tak więc Komenda, którą chcesz to:

git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld
 6
Author: dbn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-01 19:08:16

Żadna z innych odpowiedzi tutaj nie zadziałała dla mnie, prawdopodobnie od wypróbowania kombinacji wszystkich z nich. Udało mi się zaadaptować tę zaakceptowaną odpowiedź do pracy z meld. To działa teraz dla mnie z git 1.9.4, meld 3.14.0 i windows 8.1.

Edit ~/.gitconfig wygląda tak:

[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
 5
Author: c.j.mcdonn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:48

Po zainstalowaniu 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 chyba działa. Zarówno scalanie jak i różnicowanie za pomocą "git difftool "lub"git mergetool"

Jeśli ktoś ma 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

 2
Author: Yohanes AI,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-05 11:20:42

Potrzeba było kilku permutacji, aby meld działał dla mnie na Windowsie. To mój prąd .gitconfig:

[merge]
    conflictstyle = diff3
    tool = meld
[mergetool "meld"]
    cmd = \"C:\\Program Files (x86)\\Meld\\Meld.exe\" --auto-merge \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output \"$MERGED\"

Linux:

[merge]
    conflictstyle = diff3
    tool = meld
[mergetool "meld"]
    cmd = meld --auto-merge $LOCAL $BASE $REMOTE --output=$MERGED --diff $BASE $LOCAL --diff $BASE $REMOTE

Wierzę, że dodanie conflictstyle = diff3 zmienia tekst w wierszu, aby zawierał zawartość bazową w pliku wyjściowym, zanim meld do niego dotrze, co może dać mu przewagę. Nie jestem pewien.

Teraz, ponieważ już zauważyłem, że Meld obsługuje łączenie trójdrożne, jest inna opcja. Kiedy ustawiony jest styl konfliktu git" diff3", Meld drukuje" (??) "na linii pokazującej treść z bazy. źródło

Kilka funkcji wiersza poleceń meld bardzo mi się podoba:

  • --auto-merge robi świetną robotę w wyborze odpowiedniej rzeczy dla Ciebie (nie jest kuloodporny, ale uważam, że zaoszczędzony czas jest wart jakiegokolwiek ryzyka).

  • Możesz dodać dodatkowe okna różnicowe za pomocą tego samego polecenia. Np.:

    --diff $BASE $LOCAL --diff $BASE $REMOTE

    Doda jeszcze dwie zakładki z lokalnymi i przychodzącymi różnicami. Mogą być one bardzo przydatne, aby zobaczyć oddzielnie od widoku 3 sposób, aby zobaczyć oddziel dyfuzory od podstawy w każdej gałęzi. Nie mogłem tego zrobić w systemie windows.

  • Niektóre wersje meld pozwalają na oznaczanie kart za pomocą --label. Było to ważniejsze, zanim git naprawił nazwy plików przekazywanych do meld, aby zawierały local/base / remote.

  • Kolejność --diff może mieć wpływ na kolejność kart. Miałem problemy w niektórych starszych wersjach, które stawiały dodatkowe diffy na pierwszym miejscu, gdy główny 3-drożny diff jest znacznie częściej używany.

 1
Author: jozxyqk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-10 19:10:44

dla windows Dodaj ścieżkę dla meld jest jak poniżej:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
 0
Author: Sekhar T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-07 13:29:53