Setting up a difftool for git on windows
October 1, 2014
Well i have been using DiffMerge from SourceGear as the default diff tool in Visual Studio for quite a few years now. I use git more and more now but I never took the time to add a diff tool to the git configuration. But since i recently got a new dev machine I thought i might just set that up as well.
Installation
I installed with Chocolatey (remember to run cmd og PowerShell as admin) which i use to manage most of my dev tools. In fact i maintain a script on github with all the tools I use, so if you haven’t used Chocolatey for application installation, now’s your chance.
choco install diffmerge
Configuraion
The following Guide is just copied from SourceGear and works at least for version 4.2.x
For diff:
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe `$LOCAL `$REMOTE"
For merge:
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.diffmerge.cmd "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe /merge /result=`$MERGED `$LOCAL `$BASE `$REMOTE\"
Well of course you can also just edit the .gitconfig and add the settings directly into it. That would look something like this.
[diff]
tool = diffmerge
[difftool "diffmerge"]
cmd = "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe $LOCAL $REMOTE"
[merge]
tool = diffmerge
[mergetool "diffmerge"]
trustExitCode = true
cmd = "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe /merge /result=$MERGED $LOCAL $BASE $REMOTE"