如何使用 Meld 以多个选项卡方式打开 bzr diff?

如何使用 Meld 以多个选项卡方式打开 bzr diff?

如何在同一个 Meld 窗口的多个选项卡中同时打开所有 Bazaar 文件差异?

目前,我执行以下命令使用 Meld 查看 Bazaar 变化:

bzr diff --using meld

当有多个文件发生更改时,Meld 会打开第一个文件,而不会打开其他文件。然后,当我退出 Meld 窗口时,下一个文件的差异会在新的 Meld 窗口中打开。这种情况会一直持续,直到我查看完所有有差异的文件。

注意:我也尝试了以下操作,但其行为与上述相同。

bzr diff --using meld &

答案1

据我了解,我们需要将新标签创建参数传递给 Meld。

根据其手册页,此功能存在在 Ubuntu 16.04 LTS 中(参见man meld以上:

姓名
meld- GNOME 桌面的可视化差异和合并工具...
选项
...
--newtab-n
在已运行的实例中将比较作为新选项卡打开。

所以我们需要将--newtab选项传递给meld

meld --newtab /etc/os-release /etc/os-release &
meld --newtab /etc/os-release /etc/os-release &

在 Bazaar 中我们需要在bzr diff子命令中找到相应的选项。
根据man bzr我们应该使用--diff-options选项:

姓名
bzr- Bazaar 下一代分布式版本控制
命令参考
bzr diff [FILE...]
...
--diff-options ARG 将这些选项传递给外部 diff 程序。

可能的解决方案:

bzr diff --using meld --diff-options --newtab &
bzr diff --using meld --diff-options --newtab &

但在实际情况中,正如 OP 所述,它不起作用。
所以我们需要为这个命令创建一个别名:

for f in $( eval "bzr stat --versioned" ); \
do eval "bzr diff --using meld --diff-options --newtab ${f} &"; \
done

相关内容