meld
由于cairo
或其他的本地安装混乱,我无法使用。我已经在其中投入了一些时间,包括将故障报告为错误,但维护者表示这不是一个看起来正确的错误。因此,我想尝试另一种更有前途的方法并使用flatpak
安装。我可以meld
像往常一样使用flatpak run org.gnome.meld
,问题似乎是参数传递。
未提交更改失败的简单git config --global diff.tool "flatpak run org.gnome.meld"
原因是git difftool
git config option diff.tool set to unknown tool: flatpak run org.gnome.meld
Resetting to default...
This message is displayed because 'diff.tool' is not configured.
See 'git difftool --tool-help' or 'git help config' for more details.
'git difftool' will now attempt to use one of the following tools:
meld opendiff kdiff3 tkdiff xxdiff kompare gvimdiff diffuse diffmerge ecmerge p4merge araxis bc codecompare emerge vimdiff
Viewing (1/1): 'a'
Launch 'meld' [Y/n]?
为了避免麻烦我创建了一个脚本
#!/bin/sh
flatpak run org.gnome.meld "$@"
in~/bin/
并使用chmod +x ~/bin/meld
. ~/bin/
是我的第一个PATH
并根据which meld
。
在以下场景之后
> cd $(mktemp -d)
> git init .
Leeres Git-Repository in /tmp/tmp.2RFxjgBbQ5/.git/ initialisiert
> echo 1 > a
> git add a
> git commit -m "Initial commit"
[master (Basis-Commit) 997fe0d] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 a
> echo 2 > a
> git difftool
Viewing (1/1): 'a'
Launch 'meld' [Y/n]?
meld
启动以查看/tmp/cKSwbn_a
和/home/[user]/a
(用户混淆)两者都不存在。
我手头还有其他涉及 Docker 的不太舒服的解决方法,所以我最感兴趣的是了解这种方法如何工作。
Git 配置变量
diff.tool
仅指定默认使用的 diff 工具的名称。要调用的命令difftool.<tool>.cmd
在 中指定。(参见git-difftool(1)手册页。)正如这里所讨论的(带有配置示例),在调用 时
flatpak run org.gnome.meld
,有几种方法可以让 Meld 访问由以下/tmp
创建的路径git difftool
:--file-forwarding
选项将文件导出到文档存储中。(注意:这不会导出目录,因此git tool --dir-diff
无法使用这种方法。)--filesystem=FS
选项允许直接访问这些文件/目录。