С помощью встроенного средства слияния Visual Studio 2012 с Git
Итак, я не знаю, заметил ли кто-нибудь, но новый инструмент слияния, упакованный с VS2012, болен до макс. Недавно я перешел на Git для своего исходного элемента управления и действительно хочу иметь возможность устанавливать VS2012 в качестве моего default diffftool/mergetool.
Любые предложения относительно того, как это сделать? Я предпочел бы, чтобы diff/merge запускался в активном окне VS2012, а не в новом экземпляре, если это возможно.
Ответы
Ответ 1
Если вы используете Git поставщик источника управления с помощью Visual Studio, он выглядит как эта функция была реализована и доступна с версии 1.0.0.
Или если вы начнете использовать Microsoft инструменты для git, который также будет использовать встроенный инструмент diff. Из некоторых скриншотов, похоже, что это будет двухстороннее слияние, а результат внизу.
Ответ 2
В этой статье объясняется, как это сделать. Я пробовал это, и это работает. В моем использовании diff был открыт в любом существующем экземпляре 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
Ответ 3
Те решение, помеченное как ответ, не работает для меня, но это произошло (у меня было место 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