Windows子系统用于Linux,git合并工具meld UnicodeDecodeError。

6
我是WSL(Windows子系统Linux)用户。 我使用WSL简单地在我的主机和远程编译机(RedHat)之间同步源代码。我发现了这样一篇文章:
https://www.deptagency.com/en-gb/story/using-meld-as-a-git-merge-tool-on-windows/

该问题涉及在WSL中触发和运行GUI窗口meld。

但是,在按照本文的步骤后,我遇到了这个错误消息(我已检查是否传递了Windows EoL):

Traceback (most recent call last): File "bin/meld", line 328, in structured_log_adapter UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 103: invalid start byte

您有任何想法吗?

谢谢, 敬礼


这里有一个错误报告:Meld Windows shows error when git external call it (#222) · Issues · GNOME / meld · GitLab,看起来是绑定错误。 - ollydbg23
2个回答

6

我不确定这是否能回答这个问题,但我需要在WSL2中运行meld。尝试了apt install meld,但由于它是Windows,无法运行GTK应用程序。因此,我所做的就是简单地使用Windows版本的Meld之间的符号链接:

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

完成!


非常好用。在Win10上的WSL2正是我所需要的。 - nonbeing
如果我这样做,Meld.exe无法打开文件,因为它们从/mnt/e开始,而不是E:\。你是如何克服这个问题的? - RadaD

5

你尝试过当前版本的Meld吗? https://meldmerge.org/。我按照提供的链接 https://www.deptagency.com/en-gb/story/using-meld-as-a-git-merge-tool-on-windows/ 操作没有遇到任何问题。

详细步骤

https://meldmerge.org/ 在 Windows 10 上下载并安装 Meld。

导航至您的 WSL 终端,创建一个脚本来传输内容到 Meld。

nano meld

#!/bin/bash

/mnt/c/Program\ Files\ \(x86\)/Meld/Meld.exe $@

使脚本可执行

sudo chmod +x meld

将脚本移动到/usr/bin目录下。

sudo mv meld /usr/bin

然后,在~/.gitconfig中添加/编辑以下内容

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

前往存在合并冲突的 Git 目录

运行以下命令:

git mergetool

祝您愉快!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接