Git и SVN в Windows

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

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

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

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

Error validating server certificate for 'https://myproject.svn.codeplex.com:443'
:
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: *.svn.codeplex.com
 - Valid: from May 23 02:11:05 2009 GMT until May 23 02:11:05 2010 GMT
 - Issuer: redmond, corp, microsoft, com
 - Fingerprint: f0:89:78:18:47:70:e4:dc:27:01:27:9c:6f:44:4c:3f:8a:9b:ad:79
(R)eject, accept (t)emporarily or accept (p)ermanently? p

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

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

Ответы

Ответ 1

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

Ответ 2

git -svn не работает хорошо в Windows в моем опыте. Я бы посоветовал поставить ваш импорт git на что-то вроде github или любого другого хоста git и использовать "pure" git в окнах. Это предполагает, что у вас есть unix (или, по крайней мере, cygwin, который должен работать лучше, чем MSysgit, я думаю), чтобы сделать обновления git -svn. Это не идеальное, очевидно.

Ответ 3

Я получил эту работу, добавив сертификаты в цепочку auth. Вы должны получить сертификат-эмитент (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 найдет CA, который может использоваться для сертификации вашего сертификата сервера.

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

Ответ 4

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

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

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

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

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

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

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