I’m starting to use Git for local source control. So far it’s pretty cool. But, I needed to resolve a conflict and I don’t care much for VIM. I’m a .NET guy which means Microsoft all the way.

I’m familiar with TortoiseSVN and have used it many times in the past so I wanted to use the merge tool. Normally Git will recognize that you have Tortoise installed when you install Git, but I was using Git on a VM where I did not have Tortoise installed so I installed it afterward.

I was able to get Git to open TortoiseMerge but I would be asked to select the base/theirs/mine files from a dialog. TortoiseMerge was not getting the correct arguments being passed via the shell command. In my .gitconfig file I had

[merge]
tool = tortoise

[mergetool "tortoise"]
cmd = "TortoiseMerge.exe" /base:"$BASE" /theirs:"$REMOTE" /mine:"$LOCAL" /merged:"$MERGED"

Documentation claims this should have been it. But it wasn’t working. Based on this page I tried swapping the forward slashes to dashes instead and the following is what I ended up with in the .gitconfig

[merge]
tool = tortoise

[mergetool "tortoise"]
cmd = "TortoiseMerge.exe" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"

And all is working. I had to restart my bash shell before the changes took.

Advertisements