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

Re: Bug in git-gui

From
CHClemens Haffner <c.f.haffner@gmail.com>
Date
Sep 29, 2024, 18:35 UTC
Message-ID
<f72b003b-a3fa-4750-82f2-96402053f56e@gmail.com>
In-Reply-To
<d0c95c24-232f-196c-bf19-5f8ee89e246c@gmx.de>
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:
Show 67 quoted lines
> 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
>>>>    git@git.xxx.xxx: 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
>>>
>>>
>>>
>>>
>>>
>>>
Previous: Johannes Schindelin
Message 4 of 4 in “Bug in git-gui”
  1. Clemens HaffnerSep 29, 2024
  2. Johannes SchindelinSep 29, 2024
  3. Johannes SchindelinSep 29, 2024
  4. Clemens HaffnerSep 29, 2024

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.