4

我的 git global config C:\Users\.gitconfig 看起来像:

[diff]
tool = bc3

[difftool "bc3"]
path = C:/Program Files (x86)/Beyond Compare 3/BCompare.exe
cmd = \"C:/Program Files (x86)/Beyond Compare 3/BCompare.exe\" \"$LOCAL\" \"$REMOTE\"

我正在使用 Windows 7 x64 操作系统。我有 Beyond Compare Pro 3.3.5 版本。

我想在调用 BCompare.exe 时传递一个或多个参数我试过这个,但它不起作用:

cmd = \"C:/Program Files (x86)/Beyond Compare 3/BCompare.exe\ /expandall" \"$LOCAL\" \"$REMOTE\"

git difftool --dir-diff dev master

我想在 dev 和 master 分支之间进行目录比较,并在 Beyond Compare 工具中展开所有文件夹。这应该与 Beyond Compare GUI 中的相应按钮相同:Expand All 它将展开左右窗格中的所有文件夹。

我可能需要传递 2 个参数:/solo /expandall

谢谢,拉德

4

1 回答 1

13

使用表格-expandall代替/expandall, 并注意这-solo必需的(解释如下)。

[diff]
    tool = bc3
[difftool "bc3"]
    cmd = \"E:/PortApps/Beyond Compare 3/bcomp.exe\" -expandall -solo \"$LOCAL\" \"$REMOTE\"

以上适用于 Windows XP SP3(x86 32 位)上的 Beyond Compare 3.3.8(标准版)和 Git For Windows 1.8.4(msysgit)。

笔记

  1. 如果我提供了,我发现path设置不是必需的cmd

  2. 根据BC 技术支持,您可能需要使用BCompare.exe而不是......但我发现无论哪种方式都可以正常工作。bcomp.exe

独奏解释

-solo选项使比较在新窗口中打开。difftool然后将等待您关闭它,然后再删除正在比较的临时文件。

如果没有此选项,如果您已经打开了“超越比较”窗口,则比较将出现在那里的新选项卡中。这看起来很方便,但实际上不起作用,因为difftool将立即删除要比较的文件,因为您的调用bcomp.exe只是将任务委托给已经运行的应用程序然后退出。

于 2013-11-22T07:07:05.110 回答