I’m a big fan of using TortoiseMerge from TortoiseSVN for diff/merge operations. After repaving my machine the other day, I noticed that some command-line tools that I use for our internal processes were ignoring the fact that I’d configured Visual Studio 2010 to use TortoiseMerge. It turns out that some of these tools are checking the 9.0 branch in the registry. Since I don’t have Visual Studio 2008 installed, I didn’t have an IDE way of changing those preferences. Off to the registry we go.
Warning: Changing your registry might kill your cat, blow your graphics card, or make your car break down. Or something like that.
I ended up just exporting my 10.0 registry branch for the diff/merge tool config, duplicating those settings and changing the duplicate to 9.0. Once I imported these settings into my registry, everything was using TortoiseMerge appropriately.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TeamFoundation\SourceControl\DiffTools\.*]
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TeamFoundation\SourceControl\DiffTools\.*\Compare]
"Command"="C:\\Program Files\\TortoiseSVN\\bin\\TortoiseMerge.exe"
"Arguments"="/base:%1 /mine:%2 /basename:%6 /minename:%7"
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TeamFoundation\SourceControl\DiffTools\.*\Merge]
"Command"="C:\\Program Files\\TortoiseSVN\\bin\\TortoiseMerge.exe"
"Arguments"="/base:%3 /mine:%2 /theirs:%1 /basename:%8 /minename:%7 /theirsname:%6 /merged:%4 /mergedname:%9"
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\SourceControl\DiffTools\.*]
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\SourceControl\DiffTools\.*\Compare]
"Command"="C:\\Program Files\\TortoiseSVN\\bin\\TortoiseMerge.exe"
"Arguments"="/base:%1 /mine:%2 /basename:%6 /minename:%7"
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\SourceControl\DiffTools\.*\Merge]
"Command"="C:\\Program Files\\TortoiseSVN\\bin\\TortoiseMerge.exe"
"Arguments"="/base:%3 /mine:%2 /theirs:%1 /basename:%8 /minename:%7 /theirsname:%6 /merged:%4 /mergedname:%9"
By the way, another thanks to James Manning for having the authoritative post on configuring Visual Studio to use the various diff/merge tools out there.