我不能使用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,我手头还有其他不太舒服的解决方案,所以我最感兴趣的是了解这种方法是如何工作的。
发布于 2019-06-01 17:05:17
Git配置变量diff.tool仅指定默认使用的diff工具的名称。要调用的命令在difftool..cmd中指定。(请参阅git-扩散工具(1)手册页。)
正如所讨论的这里 (配置示例)所述,在调用flatpak run org.gnome.meld时,有几种方法可以让Meld访问git difftool创建的/tmp下的路径:
--file-forwarding选项将文件导出到文档存储区。(注意:这不会导出目录,因此git tool --dir-diff不会使用这种方法工作。)--filesystem=FS选项,可以直接访问这些文件/目录。https://askubuntu.com/questions/1140455
复制相似问题