git/list[1] front-page[2] threads[3] people[4] search[5] about
 

RE: difftool sends malformed path to exernal tool on Windows

From
PLPaul Lotz <plotz@lsst.org>
Date
Feb 24, 2014, 16:44 UTC
Message-ID
<000801cf317f$ac1be2b0$0453a810$@lsst.org>
In-Reply-To
<20140221103821.GA21414@gmail.com>
David,
Thanks for the helpful reply.
As you suggested, I modified the .gitconfig file to have:
[difftool "test"]
	cmd = echo \"$LOCAL\" \"$REMOTE\"

and ran $ git difftool -t test

An example of the the resulting console output is: C:/Users/Paul/AppData/Local/Temp/I8L2Bc_WriteTestParameters.vi Commands/StartAutomatedTest/WriteTestParameters.vi

Paul
-----Original Message-----
From: David Aguilar [mailto:davvid@gmail.com] 
Sent: Friday, February 21, 2014 3:38 AM
To: Paul Lotz
Cc: git@vger.kernel.org
Subject: Re: difftool sends malformed path to exernal tool on Windows
On Mon, Feb 17, 2014 at 03:14:01PM -0700, Paul Lotz wrote:
Show 7 quoted lines
> 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
Show 12 quoted lines
> 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

Previous: David AguilarNext: David Aguilar
Message 3 of 10 in “difftool sends malformed path to exernal tool on Windows”
  1. Paul LotzFeb 17, 2014
  2. David AguilarFeb 21, 2014
  3. Paul LotzFeb 24, 2014
  4. David AguilarMar 3, 2014
  5. Paul LotzMar 3, 2014
  6. David AguilarMar 5, 2014
  7. Paul LotzMar 5, 2014
  8. Paul LotzMar 7, 2014
  9. David AguilarMar 16, 2014
  10. Paul LotzFeb 28, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.