使用 meld 作为 git 的 difftool,但将所有文件列在一个 window 中

Using meld as difftool for git but listing all files in one window

我想使用 meld 作为 git 的 diff 工具。

如果我这样配置 .gitconfig :

[difftool]
    prompt = false
[diff]
    tool = meld

和运行命令:$ git difftool
然后 git 为每个有变化的文件打开一个 meld window。

但我想要一个单曲 window,我的所有文件都在 meld 列表框中。 我已经阅读了一些关于 -d--dir-diff 选项的内容。
当我尝试时:$ git difftool -d
然后打开单个 windows,每个融合部分中有一个目录树,但其中一个包含空目录。
我无法从这里打开我的文件。

供参考:

$ git --version
git version 1.9.1
$ meld --version
meld 1.8.4
$ lsb_release -d
Description:    Ubuntu 14.04.2 LTS

我也在使用 git svn,但我认为这与我的问题无关;因为据我了解 git-svn,我的目录作为一个简单的 git 目录工作。

相关问题:
View differences of branches with meld?

我通过删除 meld 并使用它的新版本 (3.12.3) 解决了我的问题:
sudo apt-get remove meld

现在我的 .gitconfig 就像:

[difftool]
    prompt = false

[diff]
    tool = meld
    guitool = meld

[difftool "meld"]
    path = /home/me/App/meld/meld-3.12.3/bin/meld

以下命令的结果是:

  • git diff : 每个修改文件的终端差异
  • git diff <myfile> : <myfile>
  • 的终端差异
  • git difftool <myfile> : <myfile>
  • 的融合差异
  • git difftool : 合并每个修改文件的差异,一个再见一个
  • git difftool -d :将每个文件的差异合并为一个 window

我也已将此行添加到我的 bash_alias,但我认为没有它也可以工作。
alias meld='/home/benjamin/Applications/meld/meld-3.12.3/bin/meld'