Search code examples
windowsgitsshmsysgitgit-clone

How to stop git via ssh on windows from resolving the wrong path?


I have a windows 2003 box with an ssh server setup. I have msysgit (git version 1.6.2) installed both locally and on the server.

The server has the following absolute path to my repos:

e:\vc\git\myrepo.git

when a user logs in he/she will be put in the following working directory:

e:\vc\git\

When running the following cmd on my dev machine:

git clone ssh://myuser@myip/myrepo.git testrepo

I get the following error:

fatal: ''/myrepo.git'' does not appear to be a git repository

According to my ssh logs it appears that git is executing this cmd on the server:

'cmd.exe /c git-upload-pack '/myrepo.git''

Executing that command locally (on the server) fails for the same reason. I'm thinking the problem is related to git prefixing the path with a '/'. How do I tell git not to do this? Should this be working?

Note: git-upload-pack is working because I added \gitinstallpath\libexec\git-core to the path. Apparently this is a bug and will be fixed in the future, this was my work around.


Solution

  • I resolved this by switching my ssh server from winssh to openssh (via the cygwin layer). I was able to connect fine (as noted above) using winsshd, but winsshd wasn't correctly handling paths prefixed with "/". I could probably get winsshd to work, but switching to cygwin and openssh was faster.

    Here's a good blog post to kick start the setup if your in a similar situation: