Я пытаюсь использовать GIT-SVN, но у меня проблемы с началом работы. Я могу клонировать svn-репозиторий (или использовать git svn init, а затем git svn fetch) без каких-либо ошибок, но после того, как команда прекратит обработку, репозиторий git пуст и нет локальной ветки master.
Мой репозиторий SVN находится здесь:
https://localhost:8443/svn/projects
И папка проекта имеет такую структуру:
/projectA/trunk
/projectA/branches
/projectA/tags
/projectB/trunk
/projectB/branches
/projectB/tags
(примечание, ветви и теги-папки пусты, в папке trunk есть файлы).
Я пытаюсь клонировать проект A, поэтому я использовал эту команду:
git svn clone --username myUsername https://localhost:8443/svn/projects/ gitFolder --trunk projectA/trunk --branches projectA/branches --tags projectA/tags
Обработка занимает около 10 минут и выводит все имена файлов на экран. Последняя строка выглядит так:
r233 = 2bfb031dda74e0ae8340688892197d647729b256 (refs/remotes/trunk)
Теперь, если я переключусь на gitFolder и наберу git log, я получу:
фатальный: неверная версия по умолчанию 'HEAD'.
git branches -a
сообщает об этом:
перепятнышки / багажник.
В gitFolder есть папка .git, но больше ничего. Я также пытался набрать git svn init
и git svn fetch
вместо git svn clone
, но конечный результат тот же.
Есть идеи, что происходит? Заранее спасибо.
Обновление:
Только что понял, что последняя строка (r233 = 2bf ...) должна указывать на номер ревизии. Итак, последняя обработанная svn-ревизия - 233. Я проверял это несколько раз, и клон git-svn всегда останавливается после ревизии 233. Проблема в том, что исходный репозиторий svn содержит более 10100 ревизий. Я не уверен, почему git-svn останавливается раньше, потому что нет ошибок или предупреждений. Где-нибудь есть файл журнала, который может дать больше подсказок?
Еще одно обновление:
Мне удалось решить мою проблему. Это было вызвано проблемами связи между VisualSVN (версия 2.1.3) и Msysgit (версия 1.7.0.2-preview20100309). Кажется, что в какой-то момент git-svn просто теряет соединение с VisualSVN-сервером и не отображает ошибку, а просто закрывается. Переключение с http-протокола на svn-протокол решило проблему.
Использовать svn-протокол с VisualSVN довольно просто:
- Перейти в папку bin VisualSVN
- Тип "svnserve --daemon"
Вы можете проверить, что все работает, используя TortoiseSVN и указав его в своем хранилище: svn: // localhost / repositories / myProject