vsDiffMerge 不是 运行 作为 Sourcetree 外部合并工具

vsDiffMerge not running as Sourcetree external merge tool

我正在尝试将 vsDiffMerge(来自 Visual Studio Professional 2017)设置为我的 SourceTree 外部 merge/diff 工具。但是,当我尝试使用外部工具解决合并冲突时,没有任何反应。我知道我以前可以使用它,但最近我不得不重新安装 Sourcetree,现在我无法使用它。

按照 this article 中的说明,我转到“工具”>“选项”>“差异”。我设置如下:

合并时,我右键单击存在合并冲突的文件并选择“解决冲突”>“启动外部合并工具”。我短暂地看到 "Visual Merge In Progress" 消息,我可以在 SourceTree 中看到临时文件(后缀为 _BACKUP、_BASE 和 _LOCAL 的文件)已创建,但消息消失后​​不久,临时文件在没有合并工具的情况下消失永远开放,留下未解决的冲突。无论我是否已经打开 Visual Studio,都会发生同样的情况。

我也试过按 交换 $REMOTE 和 $LOCAL 的顺序,但结果相同。

我设置的方式有问题吗?还有什么我应该检查或尝试的吗?

我从未发现为什么它不适用于 VS 2017,但我最近升级到 VS 2019 并将路径更新为新安装的 vsDiffMerge.exe 版本,然后它再次运行。因此,如果其他人遇到此问题,请尝试更新 Visual Studio.

我在最新的 Sourcetree 3.4.6 中遇到了同样的问题。 事实证明,添加反斜杠使其有效:

  • Diff 命令参数 - \"$LOCAL\" \"$REMOTE\" //t
  • 合并命令参数 - \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\" //m