Pregunta

Tengo una caja de ventanas 2003 con una configuración del servidor SSH. Tengo msysgit (GIT versión 1.6.2) instalado localmente y en el servidor.

El servidor tiene la siguiente ruta de acceso absoluta a mis repos:

e:\vc\git\myrepo.git

cuando un usuario inicia sesión en él / ella serán puestos en el directorio de trabajo siguiente:

e:\vc\git\

Al ejecutar el siguiente cmd en mi máquina dev:

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

Me sale el siguiente error:

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

De acuerdo con los registros de mi ssh parece que se está ejecutando git este cmd en el servidor:

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

La ejecución de ese comando a nivel local (en el servidor) no por la misma razón. Estoy pensando en el problema está relacionado con GIT anteponiendo el camino con un '/'. ¿Cómo le digo git no hacer esto? Si esto se trabaja?

Nota: git-carga-pack está funcionando porque añadí \ gitinstallpath \ libexec \ git-core a la ruta. Al parecer, este es un error y se corregirá en el futuro, este era mi trabajo alrededor.

¿Fue útil?

Solución

resolví esto cambiando mi servidor ssh desde winssh a OpenSSH (a través de la capa de cygwin). Pude conectar muy bien (como se señaló anteriormente) usando WinSSHD, pero estaba WinSSHD caminos con el prefijo "/" no manejar correctamente. Probablemente podría conseguir WinSSHD a trabajar, pero el cambio a cygwin y openssh era más rápido.

Aquí hay un buena entrada en el blog para poner en marcha la instalación, si estás en una situación similar:

Otros consejos

¿Has probado el siguiente?

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

Tenga en cuenta la eliminación de ".git" desde el final de la ruta SSH. Sólo es necesario que el sufijo al final si el nombre del directorio remoto tiene la misma.

Además, ¿ha tratado de cualquier otro formato de URL SSH? Para utilizar una ruta relativa, que puede probar:

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

Vea la href="http://git-scm.com/docs/git-clone" rel="nofollow noreferrer"> git clone hombre página

Si alguien sigue interesado en la solución:

El problema es - cmd.exe no entiende parámetros entre comillas simples. Así que usan sh lugar.

Crea gup.sh archivo con la línea

    git-upload-pack.exe $*  

y grp.sh con

    git-receive-pack.exe $*  

en el servidor

A continuación, ejecute:

    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'  
scroll top