【问题标题】:Beyond Compare as a Diff tool with Git - How to command line switch like: /expandallBeyond Compare 作为 Git 的 Diff 工具 - 如何进行命令行切换,例如:/expandall
【发布时间】:2013-04-08 07:47:09
【问题描述】:

我的 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 会展开左右窗格中的所有文件夹。

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

谢谢, 辐射

【问题讨论】:

标签: git diff beyondcompare3


【解决方案1】:

使用-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. 可能需要使用BCompare.exe而不是bcomp.exe,根据BC tech support...但我发现无论哪种方式都可以正常工作。

    李>

单独解释

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

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

【讨论】:

  • 效果很好。谢谢。我正在使用支持 Git 的 VS 2013,我可以复制 CommitID 并将其复制到我的 powershell posh-git 并像这样进行比较: git difftool --dir-diff master 173dc827230751ef2cf0dcaae8229722506968ba 或 git difftool --dir-diff dev master
猜你喜欢
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 2018-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多