如何告诉 Visual Studio 将 WinMerge 与 Git 结合使用?

Avr*_*oel 5 git winmerge visual-studio

我在 VS2017 Enterprise 中使用 Git,如果我在 Changes 中右键单击一个文件并选择“与未修改的比较”,它将使用 VS diff 工具在 VS 中的新窗口中打开。

我想改用 WinMerge,并且一直在查看诸如this(BeyondCompare 的说明,但原理应该相同)、this(GitExtensions 同上)和this 之类的资源,但无法使其工作。无论我做什么,我仍然可以在 VS 中获得 VS diff 工具。

我的用户文件夹中的 .gitconfig 文件看起来像这样......

[user]
  name = Me
  email = myemail@somewhere.jim
[core]
  autocrlf = true
[diff]
  tool = winmerge
[difftool "winmerge"]
  cmd = "'C:/Program Files (x86)/WinMerge/WinMergeU.exe'" -e "$LOCAL" "$REMOTE"
Run Code Online (Sandbox Code Playgroud)

...我的项目文件夹中的 .git/config 文件看起来像这样(敏感信息已更改)...

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[user]
[diff]
    tool = winmerge
[difftool]
    prompt = true
[difftool "winmerge"]
    cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE
    keepBackup = false
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = true
[remote "origin"]
    url = https://me@dev.azure.com/me/Project/_git/Project
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1346x938+75+75 445 196
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我使用 WinMerge 需要做什么?

  • Windows 7 专业版 64 位
  • Visual Studio 2017 企业版 4.7.03062
  • WinMerge 2.14.0.0
  • git 2.21.0

ary*_*yeh 5

你的问题是...

/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe
Run Code Online (Sandbox Code Playgroud)

...是一条不正确的路径。如果您查看第一个代码片段,您将看到正确的路径,但是该路径被项目的配置文件覆盖。

如果您更改第二个片段中的路径,或者(更好)删除整个部分,因为它只重复第一个片段中的内容,那么您应该会发现它可以工作。