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