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 外部合并工具运行的主要内容,如果未能解决你的问题,请参考以下文章