如何将ExamDiff Pro配置为SourceTree的外部合并工具

时间:2015-04-12 10:00:37

标签: merge atlassian-sourcetree examdiff

我通过以下设置将其作为差异工具:

Diff命令:C:\Program Files (x86)\ExamDiff Pro\ExamDiff.exe

参数:$LOCAL $REMOTE

如果我为合并设置设置了类似的内容:

Diff命令:C:\Program Files (x86)\ExamDiff Pro\ExamDiff.exe

参数:/merge $REMOTE $BASE $LOCAL

我得到一个ExamDiff控制台窗口,有点像信息窗口,但不是预期的GUI。

如果我手动构造合并命令并在命令行运行它,它没有问题,所以我认为它必须是SourceTree正在做的事情。

如果有人能够提供帮助,我们将不胜感激!

4 个答案:

答案 0 :(得分:2)

我在这里找到了一个关于ExamDiff Pro的一般用法的网页: http://www.prestosoft.com/edp_versioncontrol.asp

从那以后我就有了尝试这个的想法:

Diff命令:C:/Program Files/ExamDiff Pro/ExamDiff.exe

参数://merge $REMOTE $BASE $LOCAL //o:$MERGED //dn1:Theirs //dn2:Base //dn3:Yours //dno:Output //nh

//nh代表无历史记录,并使ExamDiff不会将repo路径存储在其差异历史记录中。同样可以添加到diff命令的参数中。

为我工作,希望它适合你。干杯

PS:注意 merge 命令前面有双斜线

答案 1 :(得分:0)

托马斯给出的答案对我来说只是部分有效。它对子目录中的文件没有用处。添加"行情"围绕文件名,在阅读了页面http://www.prestosoft.com/edp_versioncontrol.asp后,我提出了:

差异命令: C:/Program Files/ExamDiff Pro/ExamDiff.exe(与托马斯'版本相同)

<强>参数: -merge "$REMOTE" "$BASE" "$LOCAL" -o:"$MERGED" -dn1:Theirs -dn2:Base -dn3:Yours -nh

是的,您可以使用-option代替/option使用ExamDiff,这在使用Unix样式文件路径时非常有用。

顺便说一句:如果你想在命令行上使用 ExamDiff作为git diff- / mergetool ,这是我的配置让这个工作:(上页给出的配置不起作用!)

在Git Bash窗口中,输入以下命令:

git config --global diff.tool edp
git config --global difftool.edp.cmd '"C:/Program Files/ExamDiff Pro/ExamDiff.exe" "$REMOTE" "$LOCAL" -nh'
git config --global difftool.prompt false

git config --global merge.tool edp
git config --global mergetool.edp.cmd '"C:/Program Files/ExamDiff Pro/ExamDiff.exe" -merge "$REMOTE" "$BASE" "$LOCAL" -o:"$MERGED" -dn1:Theirs -dn2:Base -dn3:Yours -nh'
git config --global mergetool.edp.trustExitCode false
git config --global mergetool.prompt false
git config --global mergetool.keepBackup false

提示:您可能需要调整ExamDiff.exe的路径。

这对我有用(SourceTree 1.6.22.0与外部git 2.6.1 64位,在Windows 8.1 Pro 64位上的ExamDiff Pro 6.0.3.12 64位)

答案 2 :(得分:0)

启动git 2。9(2016年6月),你不必再做那些

git config --global merge.tool examdiff
git mergetool --tool=examdiff

commit 35d62bbcommit e36d716Jacob Nisnevich (jacobnisnevich)(2016年3月25日) (由Junio C Hamano -- gitster --合并于commit 34e859d,2016年4月13日)

  

git mergetools”学会驾驶ExamDiff。

     

mergetools:添加对ExamDiff的支持

答案 3 :(得分:0)

我遇到的情况是,使用ExamDiff Pro可以使GIT感到很高兴,但Sourcetree却不是。

  • Sourcetree 3.3.8
  • Git 2.24.1.windows.2(嵌入式,作为Sourcetree的一部分安装)
  • ExamDiff Pro 11.0(测试版)

首先,我遵循http://www.prestosoft.com/edp_versioncontrol.asp#git

上的建议(已经提到过)

经过大量调查,看来Sourcetree在以下位置未使用全局git config: C:\Users\myusername\.gitconfig

,但在使用了其他文件 C:\Users\myusername\AppData\Local\Atlassian\SourceTree\git_local\etc\gitconfig

这是非常违反直觉的,因为从Sourcetree打开一个终端并从命令行运行git时,它将使用第一个配置文件,但是右键单击并选择“ External Diff”,它将使用第二个配置文件。

我通过将设置从第一个文件复制到第二个文件来解决此问题,现在终端和右键单击的行为完全相同。

无论如何,我希望能对某人有所帮助。