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:

  • Git says Automatic merge failed but when i check the file or run the mergetool there are no conflicts they were resolved correctly
  • Create Django Project template using cookiecutter on Windows
  • Ignore any blank space or line break in git-diff
  • Plumbing equivalent to git remote show origin (use from Python)
  • Renaming a repo and pushing new code
  • What does the prompt “>” mean when using Git command line?
  • 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.

  • What is the reason of existance of detaching in git
  • How to add a file to the index in a git pre-commit hook
  • git-bisect but for N repos
  • Can't “git push”. “Heroku Git error” for 4 days now
  • Bower install: No versions available
  • How Do I Properly Configure Feature Branch CI with TeamCity
  • 3 Solutions collect form web for “How to stop git via ssh on windows from resolving the wrong path?”

    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:

    Have you tried the following?

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

    Note the removal of “.git” from the end of the SSH path. You only need that suffix at the end if the remote directory name has it.

    Also, have you tried any other SSH URL format? To use a relative path, you can try:

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

    See the git clone man page for details on other URL formats.

    If somebody still interested in workaround:

    The problem is – cmd.exe doesn’t understand single-quoted parameters. So we use sh instead.

    Create file gup.sh with line

        git-upload-pack.exe $*  
    

    and grp.sh with

        git-receive-pack.exe $*  
    

    on server!

    Then run:

        git clone -u 'sh gup.sh' ssh://myuser@myip/e/vc/git/myrepo.git testrepo  
        git config remote.origin.uploadpack 'sh gup.sh'  
        git config remote.origin.receivepack 'sh grp.sh'  
    
    Git Baby is a git and github fan, let's start git clone.