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 "$@"
并~/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 的不太舒服的解决方法,所以我最感兴趣的是了解这种方法如何发挥作用。
答案1
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
选项,允许直接访问这些文件/目录。