【问题标题】:Using OS X FileMerge/opendiff to view git differences, loading all files at once in the directory view使用 OS X FileMerge/opendiff 查看 git 差异,在目录视图中一次加载所有文件
【发布时间】:2015-11-27 10:48:48
【问题描述】:

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


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

[diff]
    tool = opendiff

它适用于“逐个文件”差异。但我们更喜欢在工具中一次加载目录差异,命令为git difftool --dir-diff

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

this answer 之后,我们将这些行添加到我们的全局 git 配置文件中:

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

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

此用例的正确配置是什么?

【问题讨论】:

  • 您是否考虑过使用 Xcode 来查看差异?
  • @trojanfoe 感谢您的建议:您能否提供适当的配置,以便我们快速查看它是否适合我们的工作流程? (另外,出于好奇/自豪,我们真的很想破解这个 opendiff 螺母......)
  • WRT 配置,这只是在 Xcode 中探索 repo 的一个案例;但坦率地说,我自己不会那样做。我坚持使用 SourceTree :)

标签: git macos filemerge opendiff git-difftool


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-08-13
    • 2011-01-28
    • 1970-01-01
    • 2013-01-30
    • 2012-07-28
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多