Subject: Re: difftool sends malformed path to exernal tool on Windows

From: David Aguilar <[email-masked]>
Date: Fri, 21 Feb 2014 02:38:22 -0800

On Mon, Feb 17, 2014 at 03:14:01PM -0700, Paul Lotz wrote:
> From the Git Bash command line, I enter
> $ git difftool
> 
> and type y when the file I want to difference appears.  Git correctly
> calls the external diff tool (LVCompare.exe), but the path for the remote
> file Git passes to that tool is malformed (e.g.,
> C:\/Users/Paul/AppData/Local/Temp/QCpqLa_calcLoadCellExcitation.vi). 
> Obviously the \/ (backslash forwardslash) combination is incorrect.

If this is the case then difftool is not the only one with this problem.

We use the GIT_EXTERNAL_DIFF mechanism to run difftool under "git diff",
so it may be that the paths are mangled by "git diff" itself.
I don't really know enough about msysgit to know for sure, though.

What do you see if you create a dummy tool which just does "echo"?

[difftool "test"]
	cmd = echo \"$LOCAL\" \"$REMOTE\"

Then run:

$ git difftool -t test

> For the record, I have successfully made calls to LVCompare.exe manually
> from a Windows command prompt directly (without Git).
> 
> The relevant portion of the .gitconfig file is:
> [diff]
>      tool = "LVCompare"
> [difftool "LVCompare"]
>      cmd = 'C:/Program Files (x86)/National Instruments/Shared/LabVIEW
> Compare/LVCompare.exe' \"$LOCAL\"  \"$REMOTE\"
> 
> 
> For the record, the operating system is Windows 8.1.

Do any msysgit folks know whether GIT_EXTERNAL_DIFF is a known issue?
-- 
David