【发布时间】:2016-08-23 08:57:32
【问题描述】:
我正在尝试使用 emacs ediff 作为 git difftool。
我遵循了这里提出的一些配置: Using ediff as git mergetool
当比较某个文件的不同 git 版本时,我完全没有问题:ediff 运行良好,并且两个版本之间的差异被正确描述。
但是,当我尝试运行 git difftool 以将文件的当前目录版本与某个 git 修订版进行比较时,我遇到了问题。 对于某些文件,我收到以下错误:
apply: Wrong type argument: arrayp, nil
这很奇怪,因为此错误仅针对某些文件,而不是所有文件。
我对几个文件进行了实验,我认为经验法则如下: - 如果要比较的文件没有放在 git 根目录下,则失败。 - 否则,ediff 显示文件当前版本和指定修订版本之间的差异,没有任何问题。
我已经尝试了上面提到的链接中解释的一些配置。所有这些都给了我相同的结果:当将非根 git 文件的当前目录版本与某个 git 修订版进行比较时,git difftool 失败。
知道如何解决这个问题吗?
非常感谢。 -鲍勃
【问题讨论】:
-
嗯,是的,我知道 meld,但我更喜欢 ediff,因为它是我工作流程的一部分。我还在 emacs 中使用了 magit,它运行良好。但有时我想立即启动 diff 而不进入 magit,这就是我需要 ediff 的原因。
标签: git emacs emacs-ediff