Git и SVN на Windows

Я пытаюсь запустить git для своего локального репозитория и использовать SVN для своего центрального репозитория в проекте CodePlex. Я загрузил самую последнюю версию msysgit, но поддержка SVN не работает.

Следующее успешно инициализирует новый пустой репозиторий, а затем застревает:

git svn init https://myproject.svn.codeplex.com
git svn fetch

После попытки выполнить выборку я получаю следующее:

Ошибка при проверке сертификата сервера для https://myproject.svn.codeplex.com:443:
 - Сертификат не выдан доверенным органом. Использовать
   отпечаток пальца, чтобы подтвердить сертификат вручную!
Справочная информация:
 - Имя хоста: *.svn.codeplex.com
 - Действительно: с 23 мая 02:11:05 2009 по Гринвичу до 23 мая 02:11:05 2010 по Гринвичу
 - Эмитент: Redmond, Corp, Microsoft, Com
 - Отпечаток пальца: f0:89:78:18:47:70:e4:dc:27:01:27:9c:6f:44:4c:3f:8a:9b: объявление:79
(R) извлечь, принять (t) временно или принять (p) по ошибке? п

Как видите, я пытаюсь постоянно принять сертификат, но msysgit просто сидит и никогда не выполняет выборку.

Я делаю что-то неправильно? Поддержка не там? Я нашел похожий пост переполнения стека с декабря. Я не уверен, что симптомы, которые я испытываю, одинаковы или нет.

5 ответов

Решение

Я не совсем уверен, почему, но требуется довольно много времени, чтобы вернуться из подсказки выше, которая спрашивает, принимать ли сертификат или нет. Подождав около 15 минут, операция завершилась.

git-svn не очень хорошо работает на windows в моем опыте. Я бы посоветовал поместить ваш git import на что-то вроде github или любого другого git-хостинга и использовать "чистый" git на windows. Это предполагает, что у вас есть Unix (или в худшем случае Cygwin, который должен работать лучше, чем msysgit, я думаю) для выполнения обновлений git-svn. Это не идеально, очевидно.

Я получил это, добавив сертификаты в цепочку авторизации. Вы должны получить сертификат эмитента (CA) вашего серверного сертификата в формате.pem и скопировать его в каталог certs (PATH_TO_GIT\ssl\certs) с хэшированным именем. Создайте хеш следующим образом:

C:\> PATH_TO_GIT\bin\openssl.exe x509 -noout -hash -in PATH_TO_CA_CERT.PEM

Переименуйте CA-файл в вывод команды и добавьте ".0" как расширение (например, 0dbd0096.0). Таким образом, openssl находит центр сертификации, который можно использовать для сертификации вашего сертификата сервера.

Более подробную информацию вы найдете здесь: http://gagravarr.org/writing/openssl-certs/others.shtml

Codeplex и SVN так же медленны, как и архаичны. Вот то, что сработало для меня (другой проект купить, вы поняли)

git svn clone https://iswix.svn.codeplex.com/svn -r42691:HEAD

где 42691 был самым старым набором изменений в репо (или самым старым, который вы хотите получить), а HEAD - это... дух, голова.

Я нашел номер набора изменений, посмотрев вкладку истории на странице исходного кода. Это последний.

Я попробовал все виды настроек с TortoiseGit, но он не будет играть, командной строки или перебор.

А теперь иди завари чай или испеки торт, это займет довольно много времени.

Если (в Windows) вы открываете монитор ресурсов и ищите perl.exe в разделе "сеть" и видите, что он говорит с svn.codeplex.com, значит, он работает.

Использовать http без ssl. Я использую извлечение из sourceforge https://xmlvm.svn.sourceforge.net/svnroot/xmlvm/ приводит к возникновению этой проблемы, и я просто изменить URL-адрес на http://xmlvm.svn.sourceforge.net/svnroot/xmlvm/ Это прекрасно работает

Другие вопросы по тегам