Как использовать Meld как git mergetool & difftool на WSL2?

Из WSL2 (Ubuntu) как можно использовать Meld, изначально установленный в Windows, в качестве инструмента слияния и сравнения git? Таким образом, такие команды, как git mergetool & git difftool из WSL, открывают Meld в Windows.


person Qtax    schedule 09.09.2020    source источник


Ответы (1)


Сделайте meld легко доступным в WSL, связав его:

sudo ln -s /mnt/c/Program\ Files\ \(x86\)/Meld/Meld.exe /usr/local/bin/meld

В WSL отредактируйте ~/.gitconfig и добавьте:

[diff]
        tool = meld
[difftool "meld"]
        cmd = meld \"$(wslpath -aw $LOCAL)\" \"$(wslpath -aw $REMOTE)\"
[merge]
        tool = meld
[mergetool "meld"]
        cmd = meld --auto-merge \"$(wslpath -aw $LOCAL)\" \"$(wslpath -aw $BASE)\" \"$(wslpath -aw $REMOTE)\" --output \"$(wslpath -aw $MERGED)\" --label=Local --label=Base --label=Remote --diff \"$(wslpath -aw $BASE)\" \"$(wslpath -aw $LOCAL)\" --diff \"$(wslpath -aw $BASE)\" \"$(wslpath -aw $REMOTE)\"

Чтобы git difftool --dir-diff работал, вам нужно использовать его с --no-symlinks (символические ссылки в \\wsl$\, похоже, в настоящее время не работают при открытии из приложений Windows). Изменения все равно будут скопированы обратно в исходные файлы после закрытия Meld. Поскольку я часто использую инструмент git dir diff, я добавил эти псевдонимы в файл выше:

[alias]
        dt = !git difftool --dir-diff --no-symlinks -t meld
        mt = !git mergetool -t meld
person Qtax    schedule 09.09.2020
comment
Это так Начало-у - person Panagiotis Kanavos; 09.09.2020