SourceTree中无法调用TortoiseMerge执行外部Diff,请求协助排查
排查修复步骤
核对路径与参数格式
先检查命令路径:如果路径里有空格,必须给整个路径加双引号,比如"C:\Program Files\TortoiseGit\bin\TortoiseGitMerge.exe"。
再看参数:你当前用的"$LOCAL" "$REMOTE"可能因为引号嵌套问题失效,改成不带引号的$LOCAL $REMOTE,或者用TortoiseGitMerge官方推荐的Diff参数格式:/mine:"$LOCAL" /theirs:"$REMOTE"。别搞混Diff和Merge工具的配置项
右键选“外部Diff”对应的是SourceTree里工具>选项>Diff标签页的“外部Diff工具”配置,别误在Merge工具标签页里设置。一定要把“外部Diff工具”选为“自定义”,再填入正确的路径和参数。用管理员权限启动SourceTree试试
右键SourceTree图标,选“以管理员身份运行”,再测试外部Diff功能。普通权限下,SourceTree可能没有调用外部程序的权限。直接验证TortoiseGitMerge的可用性
打开命令提示符,输入"C:\Program Files\TortoiseGit\bin\TortoiseGitMerge.exe" 你的测试文件1路径 你的测试文件2路径,比如"C:\Program Files\TortoiseGit\bin\TortoiseGitMerge.exe" "D:\test\a.txt" "D:\test\b.txt"。如果能正常打开Diff界面,说明程序没问题;如果打不开,检查路径是否正确——比如你装的是32位TortoiseGit,路径应该是C:\Program Files (x86)\TortoiseGit\bin\TortoiseGitMerge.exe。重置SourceTree配置兜底
如果上面的方法都没用,关闭SourceTree,找到C:\Users\[你的用户名]\AppData\Local\Atlassian\SourceTree目录,删除里面的user.config文件,重新打开SourceTree后再重新配置外部Diff工具。
内容的提问来源于stack exchange,提问作者Glen

