# gitk external diff on Windows

3 messages from 2022-03-02 to 2022-03-04. Participants: Phillip Susi, Erik Cervin Edin.
Thread: https://gitlist.dev/t/57497

## Phillip Susi, 2022-03-02 16:27

Subject: gitk external diff on Windows
Message-ID: <87fso0qphj.fsf@vps.thesusis.net>
URL: https://gitlist.dev/e/87fso0qphj.fsf%40vps.thesusis.net

```
I'm running git version 2.28.0.windows.1 on Windows and trying to set it
up to run winmerge as the external diff tool.  I am pretty sure I used
to do this following the instructions here:

https://igorsgames.wordpress.com/2015/05/28/using-winmerge-as-an-external-diff-tool-in-gitk/

When I point gitk to the batch file and try to open the external diff
tool, nothing happens.  Winmerge does not open, nor do I get an error
from gitk.  I noticed the next box below on the preferences screen
contains "cmd /c" so I tried prefixing the path to the batch file with
that, and instead I get an error that says:

cmd /c C:/Program Files/WinMerge/winmerge.bat: command failed: couldn't
execute "cmd \c C:\Program Files\WinMerge\winmerge.bat": no such file or
directory.

Why does nothing happen in the first case, and why in the second case is
gitk apparently changing regular slashes into back-slashes before
trying to pass the string directly to CreateProcess as the name of the
executable binary, rather than to a shell or ShellExecute or something?

Also I just tried having the batch file echo something to a text file to
see if it was running at all or if winmerge just isn't opening, and the
text file ( full path to my home directory to make sure permissions
aren't a problem ) isn't created, so the batch file isn't executing even
though there is no error given by gitk.

```

## Erik Cervin Edin, 2022-03-04 08:37

Subject: Re: gitk external diff on Windows
Message-ID: <CA+JQ7M8SF2cmZ7jagH-VdrZeR9Kfcw0GV=A1fpDeDubwJS1B8g@mail.gmail.com>
URL: https://gitlist.dev/e/CA%2BJQ7M8SF2cmZ7jagH-VdrZeR9Kfcw0GV%3DA1fpDeDubwJS1B8g%40mail.gmail.com
In-Reply-To: <87fso0qphj.fsf@vps.thesusis.net>

```
On Wed, Mar 2, 2022 at 11:32 PM Phillip Susi <phill@thesusis.net> wrote:
>
> I'm running git version 2.28.0.windows.1 on Windows and trying to set it
> up to run winmerge as the external diff tool.

This is really a Git for Windows specific issue and more appropriately
asked here
https://groups.google.com/g/git-for-windows

But I'll give a quick response here.

> contains "cmd /c" so I tried prefixing the path to the batch file with
> that, and instead I get an error that says:
>
> cmd /c C:/Program Files/WinMerge/winmerge.bat: command failed: couldn't
> execute "cmd \c C:\Program Files\WinMerge\winmerge.bat": no such file or
> directory.

I'm guessing you're running this from git bash, in which case try
cmd //c C:/Program Files/WinMerge/winmerge.bat
See
https://stackoverflow.com/a/21907301

Basically a song and dance has to be done to work with Windows quirks.

If you're still having issues, it's best to follow up in the Git for
Windows discussion group
https://groups.google.com/g/git-for-windows

```

## Phillip Susi, 2022-03-04 20:50

Subject: Re: gitk external diff on Windows
Message-ID: <877d99bfwp.fsf@vps.thesusis.net>
URL: https://gitlist.dev/e/877d99bfwp.fsf%40vps.thesusis.net
In-Reply-To: <CA+JQ7M8SF2cmZ7jagH-VdrZeR9Kfcw0GV=A1fpDeDubwJS1B8g@mail.gmail.com>

```

Erik Cervin Edin <erik@cervined.in> writes:

> I'm guessing you're running this from git bash, in which case try
> cmd //c C:/Program Files/WinMerge/winmerge.bat
> See
> https://stackoverflow.com/a/21907301
>
> Basically a song and dance has to be done to work with Windows quirks.
>
> If you're still having issues, it's best to follow up in the Git for
> Windows discussion group
> https://groups.google.com/g/git-for-windows

Nope, that didn't help.  I guess I'll try there.

```
