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

Posted

技术标签:

【中文标题】vsDiffMerge 未作为 Sourcetree 外部合并工具运行【英文标题】:vsDiffMerge not running as Sourcetree external merge tool 【发布时间】:2020-03-31 17:18:11 【问题描述】:

我正在尝试将 vsDiffMerge(来自 Visual Studio Professional 2017)设置为 SourceTree 的外部合并/差异工具。但是,当我尝试解决与外部工具的合并冲突时,什么也没有发生。我知道我之前可以使用它,但是最近我不得不重新安装 Sourcetree,现在我无法使用它。

按照this article 中的说明,我转到了工具 > 选项 > 差异。我设置了以下内容:

外部差异工具和合并工具都到Custom 区分命令和合并命令都到"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\vsDiffMerge.exe" 区分命令参数到"$LOCAL" "$REMOTE" "Source" "Target" //t 将命令参数合并到"$LOCAL" "$REMOTE" "$BASE" "$MERGED" //m

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

我还尝试交换每个this answer 的 $REMOTE 和 $LOCAL 的顺序,但结果相同。

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

【问题讨论】:

另外,我认为这是这个问题的正确位置,因为该工具主要用于编程并且我在 SO 上看到过类似的问题。但是,如果 SU 或其他网站更适合回答这个问题,请告诉我。 【参考方案1】:

我从来不知道为什么它不适用于 VS 2017,但我最近升级到 VS 2019 并更新了新安装的 vsDiffMerge.exe 版本的路径,之后它再次工作。因此,如果其他人遇到此问题,请尝试更新 Visual Studio。

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于vsDiffMerge 未作为 Sourcetree 外部合并工具运行的主要内容,如果未能解决你的问题,请参考以下文章

GIT版本管理

SourceTree 免登录跳过初始设置

Git 图形化客户端--Sourcetree

AFNetworkReachabilityStatus 作为未声明的变量返回是啥问题?

反应:作为道具的数组显示为未定义

表单未作为活动窗口打开