Win32-OpenSSH
Win32-OpenSSH copied to clipboard
shell-host.c does not interpret the single quoted file path
Please answer the following
If it is a terminal issue then please go through wiki https://github.com/PowerShell/Win32-OpenSSH/wiki/TTY-PTY-support-in-Windows-OpenSSH
"OpenSSH for Windows" version 0.0.20.0
Server OperatingSystem win10
Client OperatingSystem Win10
What is failing shell-host.c passes through to cmd.exe, single quotes as literals. The literal single quotes become part of the file path name, resulting in an incorrect file path.
Expected output shell-host.c should interpret the single quoted file path correctly Actual output
#90
It looks like the same thing happens if you set PowerShell as the default shell in the registry, so it's not just a problem with cmd.exe.
Windows and specially powershell really really suck hard. I dont have an ubuntu vps right now and If I had I would definietly switch back to my developement for linux environments. Setting up a git server is way easy on linux than it is on windows And I dont get it, Why windows is famous for its simplicity while it is just a bunch of unwell written binaries?
@bingbing8 Is there any progress on this issue?
@doggy8088 we are working #1082, #1211, and this one together to escape double quotes in a central place. It is in progress.
@doggy8088, do you have a repro command for me to validate the change?
@bingbing8 Just simply git clone [email protected]:c:/123.git
@doggy8088, I tried with powershell as default shell, it works fine
PS D:\git> git clone domain\user@serverhost:F:\git\testsource.git
Cloning into 'testsource'...
warning: You appear to have cloned an empty repository.
The reason it does not work when the default shell is cmd is that cmd does not consume the single quotes, it simply pass to the executable. if you run this locally in your cmd prompt, it also failed.
C:\WINDOWS\system32>git-upload-pack 'F:\\git\\testsource.git'
fatal: ''F:\\git\\testsource.git'' does not appear to be a git repository
Hi @bingbing8,
I'm trying to clone a Git repo from the server, which I set up with OpenSSH on Windows (OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4
), but I'm facing same issue as described in this thread:
C:\Users\cherk>git clone [email protected]:C:/Users/git/ib/web-app.git
Cloning into 'web-app'...
fatal: ''C:/Users/git/ib/web-app.git'' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
I've checked a number of related threads (#752, #1237) and for some reason setting powershell as default Shell does not resolve the issue for me. At the same time, the workaround, described here works fine, so I'm assuming it's not permissions, or bad URL issue. Unfortunately, the mentioned workaround is not acceptable for me, as it requires configuration to be done by each client, so I'm really hoping to sort things out with powershell used as a default shell.
I'm happy to provide additional details for troubleshooting, please let me know which details/log files would help identify the root cause?
I've got the same comment as @dmitry-cherkas and I'm running the same version of openssh. Setting the DefaultShell of the openSSH HKLM to powershell does not work. Only the workaround shown here permitted me access to my git repository.
This is still happening to this day. git clone
still hangs due to this.