git - Beyond Compare as a Diff tool with Git - 如何像 :/expandall 这样的命令行开关

标签 git diff beyondcompare3

我的 git 全局配置 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,它会展开左 Pane 和右 Pane 中的所有文件夹。

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

谢谢, pull 德

最佳答案

使用 -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. 我发现如果我提供 cmd,则不需要 path 设置。

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

独奏解释

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

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

关于git - Beyond Compare as a Diff tool with Git - 如何像 :/expandall 这样的命令行开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873874/

相关文章:

android - travis CI 必须使用 gradlew 才能工作吗?

git - git-svn-id 是什么?

git - .gitignore 中的评论?

带有修订范围和更改列表的 SVN 差异

svn - Beyond Compare 忽略来自 Java RAD SVN Subclipse 的 .SVN 文件夹

java - 如何使用 Git 使 Beyond Compare 在 Eclipse 中工作?

git - 如何使用 `git grep --not`

svn - TortoiseSVN 命令行差异

SVN 补丁 - 包含多个文件