使用OS X FileMerge/opendiff查看git差异,在目录视图中一次加载所有文件



我们使用git对项目进行版本控制。在OS X下开发,我们希望使用与开发工具一起分发的FileMerge应用程序来显示git生成的差异:
如果我们理解正确,就可以通过git difftool配置其调用。


根据来自不同来源的建议,我们将其添加到我们的全局git配置文件中:

[diff]
    tool = opendiff

它适用于"逐文件"的diffs。但我们更喜欢在工具中立即加载目录差异,其命令为git difftool --dir-diff

当调用directory diff命令时,会正确生成不同文件的列表,但如果我们实际尝试打开一个文件,双方都会显示错误文件不存在。显然,这是因为opendiff几乎立即终止,因此git删除了进行比较的临时文件夹。

根据这个答案,我们将这些行添加到我们的全局git配置文件中:

[difftool "opendiff"]
    cmd = /usr/bin/opendiff "$LOCAL" "$REMOTE" -merge "$MERGED" | cat

但它并不能解决文件不存在的问题(opendiff仍然几乎立即返回)。

这个用例的正确配置是什么?

问题是Filemerge过滤掉了.git目录,git存储--dir-diff输出中使用的目录。

在Filemerge中,转到"首选项">"过滤器"并从Files to ignore中删除.git,它应该可以工作。

相关内容

  • 没有找到相关文章