【问题标题】:How to use Visual Studio (vsdiffmerge) as external diff tool in SourceTree for Mercurial?如何在 SourceTree for Mercurial 中使用 Visual Studio (vsdiffmerge) 作为外部差异工具?
【发布时间】:2015-10-05 12:31:27
【问题描述】:

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

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

差异命令:

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

差异参数:

\"$LOCAL\" \"$REMOTE\" //t

合并命令:

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

合并参数:

\"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m

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

更新:-

   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

【问题讨论】:

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


    【解决方案1】:

    对于 Visual Studio 2019 Enterprise vsDiffMerge.exe,位置是:

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

    【讨论】:

    • 同时,Visual Studio 2022 Community vsDiffMerge.exe 的更新位置为:C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ vsDiffMerge.exe
    【解决方案2】:

    这是 VS 2019 差异和合并的完整答案,适用于 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

    【讨论】:

    • 我对其进行了测试,它的工作原理与描述的完全一样。非常感谢!
    【解决方案3】:

    对于 Visual Studio 2015

    将此行放入 Diff 命令 框中:

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

    参数框中的这个:

    $REMOTE $LOCAL $BASE $MERGED //m
    

    【讨论】:

    • 我认为远程和本地是交换的,不是吗?
    【解决方案4】:

    对于 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
    

    【讨论】:

      【解决方案5】:
      1. 命令和参数中有很多无用的(至少)黑斜线
      2. 阅读Setting Up DiffMerge页面,第二章,修正自己的错误

      【讨论】:

      • 我喜欢“blackslashes”(黑色又回来了!)部分:)
      【解决方案6】:

      按照此 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/

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

      【讨论】:

        猜你喜欢
        • 2018-03-27
        • 2020-03-31
        • 1970-01-01
        • 1970-01-01
        • 2020-04-03
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        • 2018-01-29
        相关资源
        最近更新 更多