В Linux моим любимым инструментом слияния является Meld, и у меня не было проблем с его использованием или настройкой для работы с Git. Однако в Windows все было иначе.
Сначала я установил Meld из пакета, который нашел здесь: https://code.google.com/p/meld-installer/
Затем я настроил свой .gitconfig таким образом, чтобы поддерживать Meld в качестве mergetool по умолчанию.
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Итак, когда у меня возникает конфликт, я делаю git difftool, и Meld действительно открывается. Однако пути к файлам, которые Git записывает для передачи инструменту сравнения, неверны. Например, даже несмотря на то, что Git генерирует файлы BASE, LOCAL и REMOTE в каталоге репозитория (место, из которого я назвал git mergetool), Meld пытается открыть каждый из этих файлов в каталоге исполняемого файла.
Вместо открытия C: \ repo \ roses.txt.LOCAL.2760.txt, Meld пытается открыть C: \ Program Files (x86) \ Meld \ meld \ roses.txt.LOCAL.2760.txt.
Кто-нибудь сталкивался с этим раньше или знает, как настроить Git / Meld для правильной работы в Windows?
Ответы:
Почему вы не используете git bash для Windows?
После установки просто:
Вот и все!
источник
git config --global mergetool.meld.cmd '"C:\Program Files (x86)\Meld\Meld.exe" $BASE $LOCAL $REMOTE -o $MERGED'
Cannot import: GTK+
иDLL load failed
.Schuess, будьте осторожны с пробелами в каталогах!
источник
cmd
безpath
и использовать кавычку вместо одинарные кавычки, одинарные кавычки вместо слэш-двойные кавычки.Program_Files_x86 -> 'Program Files (x86)/'
и использовал[mergetool "meld"] path = /mnt/c/Program_Files_x86/Meld/Meld.exe
У меня была точно такая же проблема, и я обнаружил, что мне пришлось применить грубую силу, чтобы заставить ее работать. Вот что я поместил в свой файл .gitconfig. (Обратите внимание, что мой исполняемый файл meld находится в другом месте)
источник
meld
файл вbin
каталоге (я фактически переименовал файлmeld.py
), и он работал без проблем.Windows:
Вы можете использовать эти две команды ( как говорит Аругин ) - используя правильный путь к Meld.exe:
ИЛИ вы можете просто отредактировать
C:\Users\YOUR_USER_NAME\.gitconfig
файл напрямую и добавить в его конец следующее:Теперь вызовите
git difftool
Git Bash для Windows, и Meld откроется в качестве средства просмотра difftool по умолчанию.Linux:
ОБНОВЛЕНИЕ 20 сентября 2019 г .:
- Я мог бы также разместить здесь версию для Linux для моей справки в одном месте, если ничего больше:
Для Linux это тоже очень просто:
Затем добавьте в конец файла .gitconfig:
Это оно!
git difftool
теперь работает на Linux Ubuntu!Связанный:
источник
Я нашел решение в отчете об ошибке установщика meld на этой странице:
https://code.google.com/p/meld-installer/issues/detail?id=11
Насколько я понимаю, проблема в том, что программа meld.exe (которая запускает meld через интерпретатор python) без нужды устанавливает рабочий каталог команды как meld.exe. Это приводит к неправильной интерпретации относительных путей при передаче в качестве аргументов командной строки.
Решение состоит в том, чтобы заменить предоставленный файл meld.exe на файл, сгенерированный путем компиляции файла meld.ahk с использованием AHK2EXe (сценарий AutoHotKey -> exe). Просто скачайте скрипт дальше всего вниз по странице, так как там было опубликовано несколько версий.
источник
Я тоже столкнулся с подобной проблемой. Используемая операционная система - Windows 10, и следующие изменения у меня сработали. Это больше похоже на проблему с путями.
источник
По какой-то причине в Windows 10 переменная среды PATH не может быть правильно установлена во время установки, поэтому возникает странное исключение, говорящее о том, что она не может найти некоторые .dll, которые находятся в "C: \ Program Files (x86) / Каталог "Meld / bin".
Обходным путем для меня было выполнить в git bash:
Или добавьте в Windows PATH
источник
Ни один из ответов не помог мне. Я закончил с этим в файле .gitconfig:
После
git merge mybranch
окончания конфликта вы простоgit mergetool
набираете текст, и открывается слияние. После сохранения вы должны выполнить коммит в git, и конфликты будут разрешены.По какой-то причине это работало только с Meld 3.18.x, Meld 3.20.x выдает ошибку.
источник
После того, как я попробовал все вышеперечисленное, у меня сработала настройка Meld для запуска от имени администратора.
Run this program as an administrator
флажокОшибки, которые я получил, связаны с временными файлами, например
c:\windows\temp\meld-*
, которые не создавались. Повышение разрешений Meld, похоже, помогает, поскольку теперь он работает с обоимиgit difftool
и запускается вручную в Meld.источник