Subject: Re: Bug in git-gui

From: Clemens Haffner <[email-masked]>
Date: Sun, 29 Sep 2024 20:35:18 +0200

Hi Johannes,

you were on the right track:

- if I set the env variable (as a normal Windows Enviroinment variable) to

c:/Program Files/Git/mingw64/bin/git-askpass.exe

the GUI does indeed (almost) work as intended.
Almost, because while git-askpass is running, a console window is open 
in the background. ssh works though.

- however, with the variable set to this, git bash does not work anymore 
(waits infinitely on commands like "git push").
It doesnt even work when set to mingw-style

/c/Program Files/Git/mingw64/bin/git-askpass.exe

- If I start git-gui from within the mingw bash, it does even work 
without the variable set. (The console window still appears though).

So, to fix this git-gui needs to be aware of the enviroinment variable 
when launched through the start menu.

I'm not familiar with the source code, but I guess

git-gui/windows/git-gui.sh

would be the file that is responsible for that.

Greetings,

Clemens

Am 29.09.2024 um 19:44 schrieb Johannes Schindelin:
> Hi Clements,
>
> On Sun, 29 Sep 2024, Johannes Schindelin wrote:
>
>> On Sun, 29 Sep 2024, Clemens Haffner wrote:
>>
>>> I think I found a bug in git-gui on Windows (Windows 10 64 bit)
>>>
>>> git-gui Version 0.21.GITGUI
>>> git Version: 2.44.0.windows.1
>>>
>>> To reproduce: (I have not tested it with rsa keys)
>>>
>>> - Create an ed25519 key with a passphrase (--> .ssh/id_ed25519). Help->Show
>>> ssh key detects that key perfectly and shows the Public key to copy
>>> - Push something to a repository:
>>> --> it will fail.
>>>
>>>>    Pushing to xxx.xxx:clemens/test_repo.git
>>>>    CreateProcessW failed error:193
>>>>    ssh_askpass: posix_spawnp: Unknown error
>>>>    [email-masked]: Permission denied (publickey).
>> This might be due to the `SSH_ASKPASS` environment variable pointing to a
>> Unix-style path, but your SSH not being Unix-path-aware.
>>
>> Can you verify that your `SSH_ASKPASS` environment variable is set to
>> `/mingw64/bin/git-askpass.exe`? If so, can you set it to `/c/Program
>> Files/Git/mingw64/bin/git-askpass.exe` instead and try again?
> Oh, make that `c:/Program Files/Git/mingw64/bin/git-askpass.exe`, i.e. a
> Windows-style path but with forward slashes as directory separators.
>
> Ciao,
> Johannes
>
>>>>    fatal: Could not read from remote repository.
>>>>
>>>>    Please make sure you have the correct access rights
>>>>    and the repository exists.
>>> - When using a key without a passphrase, it works perfectly well.
>>> - When using ssh-agent with a key that uses a passphrase, it also works well.
>>>
>>>>    Pushing to git.xxx.xxx:clemens/test_repo.git
>>>>    To git.xxx.xxx:clemens/test_repo.git
>>>>     = [up to date]      rev1 -> rev1
>>>>    updating local tracking ref 'refs/remotes/origin/rev1'
>>>>    Everything up-to-date
>>> this bug must be in git gui, as it works perfectly fine via git bash.
>>>
>>> "git push" spawns a new window, which asks for the passphrase. After entering
>>> the phrase git works as intended.
>>>
>>> It seems to me that the git gui cant spawn that window where it asks for the
>>> key.
>>>
>>> If that helps:
>>> I'm using Microsofts OpenSSH implementation:
>>>
>>>>    $ ssh -V
>>>>    OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
>>> Greetings,
>>> Clemens Haffner
>>>
>>>
>>>
>>>
>>>
>>>