git difftool:如何比较 zip 文件

git difftool: how to compare zip files

我正在尝试使用 "git difftool" 比较二进制文件。这个文件也是暂存的,不过看起来这并不重要。所以我正在使用如下内容:

git difftool --staged /path/to/file

我的 .gitconfig 配置如下:

[difftool "bc3"]
    path = C:/Program Files (x86)/Beyond Compare 3/BComp.com
    cmd = BComp.com \"$LOCAL\" \"$REMOTE\" -lefttitle="Remote" -righttitle="$BASE" -lro
[diff]
    tool = bc3
[difftool]
    prompt = false

因此,当我 运行 git difftool 它按预期打开 Beyond Compare 时,我收到一个错误消息,指出基本二进制文件不存在。修改后的本地副本已正确加载到工具中。

我在 *.bcpkg(Beyond Compare 设置文件,基本上是一个 zip 文件)和常规 *.zip 文件中注意到了这一点。但似乎适用于 *.exe 文件。我注意到 git difftool 不应该 return 除非 Beyond Compare 关闭,因为如果它 returns 它创建的临时文件将被删除。但如果是 zip 文件,它总是立即 returns。

顺便说一句,所有其他文件类型的差异对我来说都很好。我在 Windows 7(64 位)上,如您所见,我已经配置了 Beyond Compare 3。

这已在 Beyond Compare 4 中修复。Beyond Compare 4 支持从 git 比较 zip 文件。

Beyond Compare 3 不支持来自 git 的差异 zip 文件。它将失败并显示错误消息:文件夹不可用:C:\Users\username\AppData\Local\TempYcl9_filename.zip

如果您想评估 Beyond Compare 4 以测试 zip 文件差异,运行 安装程序和 select 创建便携式安装 并安装到文件夹在你的桌面上。这不需要管理员权限。然后 运行 git config --global difftool.bc3.path "c:/users/username/desktop/Beyond Compare 4/bcomp.exe" 让 git 使用便携式安装。完成测试后,只需删除桌面上的文件夹即可删除版本 4 便携式安装。

要在试用版本 4 后升级您的许可证,请在 Scooter Software 网站上填写 upgrade form

FWIW,this article 显示了如何配置 git 以在标准 diff 运行 之前解压缩具有所选扩展名的文件。也许有帮助。