如何在SourceTree for Mercurial中使用Visual Studio(vsdiffmerge)作为外部差异工具?

时间:2015-10-05 12:31:28

标签: visual-studio visual-studio-2013 mercurial atlassian-sourcetree mercurial-extension

我使用Mercurial进行源代码控制,使用SourceTree进行管理。我想使用Visual Studio内置的差异和合并工具(vsdiffmerge)来比较文件但是这不起作用。

我目前正在使用以下内容:

差异命令:

\" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ vsdiffmerge.exe \"

Diff Arguments:

\" $ LOCAL \" \" $ REMOTE \" //吨

合并命令:

\" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ vsdiffmerge.exe \"

合并参数:

\" $ REMOTE \" \" $ LOCAL \" \" $ BASE \" \" $已合并\" //米

enter image description here

Visual Studio diff工具未启动。你能看一下吗?

更新: -

   We should use like below:-
   Diff Command: 
   full path of vsDiffMerge.exe
   For VS 2015 and below you can find it in the Visual Studio installation folder, under Common7\IDE subfolder. Visual Studio 2017 has it slightly more hidden. Look under Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer.


   Diff Argument: "$LOCAL" "$REMOTE" "Source" "Target" //t
   Merge Argument: $LOCAL" "$REMOTE" "$BASE" "$MERGED" //m

谢谢, Sombir

6 个答案:

答案 0 :(得分:7)

对于 Visual Studio 2015

  

将此行放在 Diff Command 框中:

C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/IDE/vsDiffMerge.exe
     

Arguments 框中的这个:

$REMOTE $LOCAL $BASE $MERGED //m

答案 1 :(得分:5)

使用Visual Studio 2015 Update 1和SourceTree 1.7.0.32509这只是设置,对我有用:

C:/Program Files (x86)/Microsoft Visual Studio 14.0/Common7/IDE/vsDiffMerge.exe 
$REMOTE $LOCAL $BASE $MERGED //m

答案 2 :(得分:4)

  1. 你在命令和参数中有很多无用的(至少)黑色斜杠
  2. 阅读Setting Up DiffMerge页面,第二章并修复自己的错误

答案 3 :(得分:1)

这是 VS 2019 diff 和 merge 的完整答案,适用于 Git 和 Mercurial。

差异:

<块引用>

Diff 命令: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\vsDiffMerge.exe

参数: $LOCAL $REMOTE //t

合并:

<块引用>

合并命令: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\vsDiffMerge.exe

参数: $REMOTE $LOCAL $BASE $MERGED //m

如果您有 Enterprise VS 版本,请将路径更改为:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\vsDiffMerge.exe

Image of diff/merge section of SoureTree with correct settings.

答案 4 :(得分:0)

Visual Studio 2019企业版vsDiffMerge.exe的位置为C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ vsDiffMerge.exe

答案 5 :(得分:-1)

按照此SO获取更多指导 What are the command line arguments for TFS default merge tool for VS 2012?

还有这些指针 http://roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/

事实是,我也尝试过设置它并没有太多运气。我碰巧使用Beyond Compare。如果您希望它工作,至少保持SourceTree在外部差异选项下拉列表中提供的选择。没有充分的理由使用他们不支持的任何其他东西。