Неизвестная ошибка протокола при использовании git-svn через HTTPS через прокси-сервер - PullRequest
5 голосов
/ 23 марта 2012

Я столкнулся с некоторыми проблемами при попытке доступа к хранилищу Subversion через HTTPS с помощью git-svn.

Когда я набираю git svn init --username=<my username> --trunk=https://<host>/<project>/trunk, я получаю следующее сообщение об ошибке:

RA layer request failed: PROPFIND request failed on '/<project>/trunk':
PROPFIND of '/<project>/trunk': SSL negotiation failed: SSL error: unknown
protocol (https://<host>) at C:\Program Files (x86)\Git/libexec/git-core\git-svn
line 2299

Несколько других замечаний:

  1. Я использую msysgit 1.7.9.0 на Windows 7 x64.У меня также есть клиент командной строки Subversion 1.7.1 и TortoiseSVN 1.7.1.
  2. Я подключаюсь через прокси-сервер, который я указал через переменную среды HTTP_PROXY и git config http.proxy.
  3. Я могу без проблем клонировать репозитории Github по HTTPS на одной машине.
  4. Простой клиент Subversion без проблем проверяет тот же проект.Я также смог успешно клонировать его с Mercurial и hgsubversion, хотя он не смог распознать SSL-сертификат сервера, поэтому мне пришлось явно указать его в моем файле mercurial.ini.Из-за этого я использую git config http.sslVerify=false.Однако это не имеет никакого значения.
  5. Односторонние обходные пути, такие как использование svnsync (как, например, предлагается здесь ), не являются опцией.

Все что угодночто еще я не пробовал?

Ответы [ 4 ]

9 голосов
/ 30 марта 2012

Чтобы немного рассказать о двух других ответах (и объяснить, почему вы видите то, что видите), git svn (как часть msysgit) построен против SVN 1.4.6:

C:\> git svn --version
git-svn version 1.7.7.1.msysgit.0 (svn 1.4.6)

Обратите внимание, что 1.4.6 ... ну ... старый. (И даже не поддерживается, так как 1.6 был выпущен в 2009 году.)

msysgit git-svn - это , а не с использованием вашей установки Subversion - поэтому возможность извлечения с помощью установленного svn (к сожалению) не является признаком проблемы.

Есть некоторые сообщения об ошибках об обновлении до более новой Subversion для msysgit, но, похоже, они еще не материализованы.

Вы пробовали Cygwin's git-svn?

1 голос
/ 30 марта 2012

Предлагая немного менее краткий ответ, Кан является правильным . Причина, по которой вы видите это, заключается в том, что ваш вышестоящий репозиторий неправильно настроен для SVN + HTTPS. Это может быть связано с неправильной настройкой на стороне сервера или с тем, что протокол SVN отличается от того, что ожидает ваш клиент.

Ошибки предоставляют правильные сценарии отладки для этой проблемы. Если у вас есть контроль над репозиторием SVN, убедитесь, что его HTTPS-конфигурация работает должным образом , чтобы продолжить использовать его в качестве обратного репозитория. Если вы хотите изменить протокол или URL-адрес, используемый для дальнейшей диагностики соединения (например, попытаться использовать HTTP или SSH), вот руководство, которое вам понадобится .

1 голос
/ 27 марта 2012

Полученное сообщение (SSL23_GET_SERVER_HELLO: неизвестный протокол) легко найти в Google. Например. здесь или здесь Похоже, вы неправильно настроили серверы https или dns и не имеете ничего общего с git.

0 голосов
/ 19 марта 2013

Я наконец-то обнаружил, как заставить его работать. Ответ пришел от этой темы .

Когда вы подключаетесь к серверу Subversion через прокси, git-svn не использует настройки прокси в .gitconfig и не использует настройки, которые вы настраиваете в TortoiseSVN. Вместо этого он выглядит в [global] разделе %USERPROFILE%\.subversion\servers.

Добавление настроек нашего прокси-сервера в этот файл позволило мне подключиться к внешнему серверу Subversion.

...