Donc, je ne sais pas si quelqu'un l'a remarqué, mais le nouvel outil de fusion fourni avec VS2012 est malade au maximum. Je suis récemment passé à Git pour mon contrôle de code source et je veux vraiment pouvoir configurer VS2012 comme outil difftool/mergetool par défaut.
Des suggestions sur la façon de procéder? Je préfère que la diff/fusion soit démarrée dans la fenêtre VS2012 active et pas une nouvelle instance si possible.
Si vous utilisez Git Source Control Provider avec Visual Studio, il semble que cette fonctionnalité a été implémentée et est disponible à partir de la version 1.0.0.
Ou si vous commencez à utiliser Microsoftoutils pour git , cela utilisera également l'outil de diff intégré. D'après certaines captures d'écran , il semble que la fusion va dans les deux sens, avec le résultat en bas.
Cet article explique comment procéder. J'ai essayé et ça marche. Dans mon utilisation, le diff a été ouvert dans n'importe quelle instance existante de Visual Studio, ce que vous avez préféré.
[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
Ou utiliser %VSINSTALLDIR%
pour toujours référencer la version de Visual Studio qui correspond à la ligne de commande que vous avez ouverte (cela ne fonctionne que lorsque l'environnement Visual Studio a été configuré, soit en utilisant le raccourci d'invite de commandes Visual Studio, soit en appelant manuellement 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
La solution marquée comme ayant répondu n'a pas fonctionné pour moi, mais cela a fonctionné (j'avais l'emplacement vsdiffmerge.exe sur mon chemin - je ne sais pas si cela avait quelque chose à voir avec):
[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