Ошибки git-upload-pack возникают при подключении по ssh к cygwin. sshd
В cygwin пути не берутся из .bash_profile
ожидаемого в среде *nix пути.
Как исправить это и заставить msysgit работать правильно с cygwin bash и cygwin ssh?
решение1
Я поискал везде, где встречаются люди, получающие ошибки git-upload-pack missing, как и я, и пришел к этому.
По сути, это просто устанавливает путь ssh Cygwin, чтобы в нем был msysgit.
Установите msysgit (использования только git bash должно быть достаточно, нам не нужен git.cmd для cygwin)
Установите cygwin, найдите ssh и отметьте его галочкой.
ssh-host-config -y
Я не стал заморачиваться с установкой переменной CYGWIN ни на какие значения по умолчанию, так как значения по умолчанию показались мне правильными.
cygrunsrv.exe -R sshd
удалить службу, которая была создана в процессе
ssheNv="/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/bin"
mSysgit="/usr/local/bin:/c/WINDOWS/system32:/c/WINDOWS:/cygdrive/c/Program Files/Git/bin:/cygdrive/c/Program Files/Git/libexec/git-core"
Теперь добавьте эти две строки в путь ниже:
cygrunsrv -I sshd -d "CYGWIN sshd" -p /usr/sbin/sshd -a -D -e "PATH=$ssheNv:$mSysgit"
cygrunsrv.exe -S
запустите службу (используйте -E, чтобы остановить ее снова, если хотите)
с другого ПК с msysgit
git clone ssh://dude@hostIPetc'/Documents and Settings/blabla/myrepo.git'
Для тех, у кого не было git-upload-pack
пути, это исправляет ситуацию. Мне не нужно устанавливать cygwin git только для того, чтобы удовлетворить пути!
Вопрос, может ли кто-нибудь разобраться, как указать пути Cygwin "/cygdrive/d/" и т. д.? Сейчас работает только /, а это значит C:\
Если кто-то считает, что все это слишком небрежно и нужно просто использовать cygwin git, пожалуйста, скажите об этом.
хмhttp://www.grumpydev.com/2011/01/19/switching-from-cygwin-to-msysgit-git-thinks-everything-has-been-modified/ MSysGit «подделывает» режимы файлов. Это причина перейти на Cygwin или это полезно для Windows...