如何配置Visual Studio 2017以使用外部差异比较工具和合并工具

9

我在git全局配置中为difftool和mergetool配置了DiffMerge。我阅读到Visual Studio尊重全局git配置的这些设置。以下是我的git配置:

git config  --global --list
difftool.DiffMerge.cmd='C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' $LOCAL $REMOTE
merge.tool=DiffMerge
mergetool.DiffMerge.cmd='C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' -merge -result=$PWD/$MERGED $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE
mergetool.DiffMerge.trustexitcode=true
user.name=masiboo
user.email=masiboo@gmail.com

但是如果尝试从Visual Studio中查看差异,它会打开VS自己的差异工具。我该如何打开或配置以打开外部工具?

2个回答

9

我也花了一些时间。

似乎Visual Studio 2017会“帮助”你,如果出现错误,它只是启动Visual Studio差异比较工具。

以下是我的可用的.gitconfig设置:

[diff]
    tool = winmerge

[difftool "winmerge"]  
  trustExitCode = true
  cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" -u -e \"$LOCAL\" \"$REMOTE\"

请注意,Visual Studio似乎会插入一个具有差异工具设置的存储库级配置。在这种情况下,您需要清除存储库中的.git/config设置。

谢谢您的回复。我使用Sourcetree和GitExtensions,但它们在初始设置期间似乎会搞砸这个设置。我的[diff]部分最初是使用GitExtensions配置的,结果只有一个guitool条目,而没有工具条目。然后Visual Studio默默地“帮助”我忽略了所有内容并启动了自己的diff。 - rrreee
Visual Studio 2017中没有“.gitconfig”文件(正如您在您的赞同回答中所述)-如果您认为有,请在此处准确地发布该文件的位置。 - Jazimov
.gitconfig 文件通常位于 c:\users%username% 文件夹中(其中 %username% 是您的 Windows 用户名) - Hagay Goshen

1

我想将VS Code作为差异工具使用,我将以下内容添加到本地git配置文件中,在VS2019中有效。

[diff]
    tool = vscode
[difftool "vscode"]
    cmd = "code --wait --diff \"$LOCAL\" \"$REMOTE\" "

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接