Subject: git difftool and proper path escaping on windows

From: Phil Susi <[email-masked]>
Date: Fri, 08 May 2015 13:31:05 -0400

I'm trying to have git difftool run winmerge to compare files, but it 
seems to be doing something silly with path translation.  My first 
attempt was:

git difftool -x /c/Program\ Files\ \(x86\)/WinMerge/WinMergeU.exe

To which it responded:

C:\Users\psusi\AppData\Local\Programs\Git/libexec/git-core\git-difftool--helper:
  eval: line 61: syntax error near unexpected token `('

C:\Users\psusi\AppData\Local\Programs\Git/libexec/git-core\git-difftool--helper:
  eval: line 61: `c:/Program Files (x86)/WinMerge/WinMergeU.exe "$LOCAL" 
"$REMOTE

My first thought was that my shell removed the backslash escapes and 
then git tried to pass the remaining command to another shell.  So I 
wrapped the path in single quotes, which should pass the escapes to git, 
which should pass them to the shell, which should then be able to parse 
the spaces in parenthesis in the path, but instead I got this:

Launch 'c:/Program/ Files/ /(x86/)/WinMerge/WinMergeU.exe'

So it appears that git is replacing backslashes with forward slashes, 
then trying to pass that to the shell, which doesn't work.  Any idea how 
to fix or workaround this bug?