所以,我不知道是否有人注意到,VS2012附带的新合并工具非常强大。我最近转向使用Git进行源代码控制,并真的想将VS2012设置为默认的diff工具/合并工具。
有什么建议吗?如果可能的话,我更希望在活动的VS2012窗口中启动差异/合并,而不是在新实例中打开。
所以,我不知道是否有人注意到,VS2012附带的新合并工具非常强大。我最近转向使用Git进行源代码控制,并真的想将VS2012设置为默认的diff工具/合并工具。
有什么建议吗?如果可能的话,我更希望在活动的VS2012窗口中启动差异/合并,而不是在新实例中打开。
本文解释了如何做到这一点。我尝试过并且有效。在我的使用中,差异会在任何一个现有的Visual Studio实例中打开,这是您所偏爱的。
[diff]
tool = vsdiffmerge
[difftool]
prompt = false
[difftool "vsdiffmerge"]
cmd = '"C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" //t
keepbackup = false
trustexitcode = true
[merge]
tool = vsdiffmerge
[mergetool]
prompt = false
[mergetool "vsdiffmerge"]
cmd = '"C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/vsdiffmerge.exe"' "$REMOTE" "$LOCAL" "$BASE" "$MERGED" //m
keepbackup = false
trustexitcode = true
或者使用%VSINSTALLDIR%
来始终引用与您打开的命令行匹配的Visual Studio版本(仅当已设置Visual Studio环境时,即通过使用Visual Studio命令提示快捷方式或手动调用vsvars32.bat
):
[diff]
tool = vsdiffmerge
[difftool]
prompt = false
[difftool "vsdiffmerge"]
cmd = '"%VSINSTALLDIR%Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" //t
keepbackup = false
trustexitcode = true
[merge]
tool = vsdiffmerge
[mergetool]
prompt = false
[mergetool "vsdiffmerge"]
cmd = '"%VSINSTALLDIR%Common7/IDE/vsdiffmerge.exe"' "$LOCAL" "$REMOTE" "$BASE" "$MERGED" //m
keepbackup = false
trustexitcode = true
被标记为答案的解决方案对我没有用,但是这个方法可以(我将vsdiffmerge.exe的位置加入了路径 - 不知道是否有关):
[diff]
tool = vsdiffmerge
guitool = vsdiffmerge
[difftool]
prompt = true
[difftool "vsdiffmerge"]
cmd = $LOCAL $REMOTE /t
keepbackup = false
trustexistcode = true
path = C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsDiffMerge.exe
[merge]
tool = vsdiffmerge
[mergetool]
prompt = false
[mergetool "vsdiffmerge"]
cmd = $REMOTE $LOCAL $BASE $MERGED /m
keepbackup = false
trustexitcode = true
path = C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsDiffMerge.exe