Как установить Meld как git mergetool

97

Я установил:

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

На "git mergetool" пишет:

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

Я также пробовал:

  • / c / Progra ~ 2 / meld / bin /
  • "/ c / Программные файлы (x86) / meld / bin /"
  • "c: / Программные файлы (x86) / meld / bin /"

результат тот же.

когда я перехожу в C: / Program files (x86) / meld / bin / и запускаю

python meld

инструмент работает.

Павел
источник
Скопируйте и вставьте части .gitconfigиз: marcin-chwedczuk.github.io/use-meld-as-git-merge-diff-tool
csharpfolk
Связанный: «Настройка инструмента сравнения с .gitconfig»: stackoverflow.com/a/6412645/4561887 (для meld просто замените vimdiffна meldв этом ответе)
Габриэль Стейплз
Прокомментируйте и проголосуйте за проблему, связанную с апстримом, чтобы будущему пользователю даже не нужно было беспокоиться об этом.
Франклин Ю

Ответы:

72

Вы можете использовать полные пути unix, например:

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

Это то, что описано в " Как заставить meld работать с git в Windows "

Или вы можете использовать подход оболочки, описанный в разделе « Использование Meld с Git в 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

Со сценарием meld.sh:

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

Абергмайер упоминает в комментариях :

Пришлось сделать:

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

Обратите внимание, что meldc.exe был специально создан для вызова в Windows через консоль. Таким образом, meld.exe не будет работать должным образом.


CenterOrbit упоминает в комментариях к Mac OS об установке homebrew , а затем:

brew cask install meld
git config --global merge.tool meld
git config --global  diff.guitool meld
VonC
источник
3
Для меня пришлось сделать:git config --global merge.tool meld git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe
abergmeier
@abergmeier Хорошо, я включил ваш комментарий в ответ для большей наглядности.
VonC
Решение @abergmeier работает. Кроме того, в Windows git bash, если вы нажмете tabключ, он предложит путь, поэтому его легко сделать правильно.
Асвин Кумар
3
К вашему сведению, на Mac OSx: установите homebrew , затем:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit
@CenterOrbit Хорошо, я включил ваш комментарий в ответ для большей наглядности.
VonC
24

У меня это сработало в Windows 8.1 и 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"при использовании PowerShell
Майкл Блейк
иногда вы можете перезапустить свой git gui после git config (чтобы внести изменения)
Йоханес AI,
11

смесь 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\"
Томаш Май
источник
Имейте в виду, что это оставленный вопрос. Я давно не занимался инструментами слияния, поэтому даже если ваш ответ лучший, я не могу его доказать и отметить как ответ.
Пол
Здравствуйте, попробовал, отлично работает. В моем случае это был cmd, которого не хватало для правильного вызова meld
faidherbard
При использовании этого шаблона командной строки Meld некорректно сохранял объединенные файлы. См. Stackoverflow.com/a/40777256/768795 для ответа, который работает.
Thomas W
6

Я думаю, это mergetool.meld.pathдолжно указывать прямо на исполняемый файл meld. Таким образом, вам нужна следующая команда:

git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld
dbn
источник
5

Ни один из других ответов здесь не сработал для меня, возможно, от попытки их всех сочетать. Я смог адаптировать этот принятый ответ для работы с meld. Теперь это работает для меня с git 1.9.4, meld 3.14.0 и windows 8.1.

Отредактируйте ~ / .gitconfig, чтобы он выглядел так:

[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
источник
2

После установки http://meldmerge.org/ мне пришлось сообщить git, где он находится:

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”

И это, кажется, работает. Как слияние, так и слияние с помощью «git difftool» или «git mergetool»

Если кто-то сталкивается с такой проблемой, как сбой Meld после запуска (индикация проблемы с python), вам необходимо настроить Meld / lib для переменной вашей системной среды, как показано ниже C:\Program Files (x86)\Meld\lib

Йоханес А.И.
источник
0

Для окон добавьте путь для объединения, как показано ниже:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Сехар Т
источник