Git SVN не удается получить из репозитория SVN

Я хотел бы использовать SVN и Git вместе. У меня есть репозиторий svn, и я пытаюсь найти в рабочем каталоге, но я столкнулся с ошибкой, как показано ниже.

svn, версия 1.6.6 (r40053)

git версия 1.7.3.1.msysgit.0

Путь репозитория svn имеет файл:///d:/tmp/test-svn/repos

Это шаги, которые я сделал:

D:\tmp\test-svn>mkdir my-project

D:\tmp\test-svn>cd my-project

D:\tmp\test-svn\my-project>git svn init file:///d:/tmp/test-svn/repos

Initialized empty Git repository in D:/tmp/test-svn/my-project/.git/

D:\tmp\test-svn\my-project>git svn fetch

Couldn't open a repository: Unable to open an ra_local session to URL: Unable to
 open repository 'file:///d:/tmp/test-svn/repos/my-project/trunk': Expected FS f
ormat '2'; found format '4' at C:\Program Files\Git/libexec/git-core/git-svn lin
e 1773

Так в чем проблема? Как получить данные из репозитория svn в рабочий каталог Git?

Спасибо.

Ответы

Ответ 1

Я думаю, что это следующая проблема: http://code.google.com/p/msysgit/issues/detail?id=298

Возможным решением является установка svnserve и использование протокола svn:// вместо file:///

См. здесь для настройки svnserve в Windows: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-serversetup-svnserve.html

UPDATE

svnserve доступен как часть TortoiseSVN, если вы используете ОС Windows (я проверил с TortoiseSVN версии 1.8.6)

Затем вы только начинаете:

svnserve -d -R --root c:\path\to\svn\repo

и клонировать репозиторий следующей командой:

git svn clone svn://localhost/path/inside/svn/repo

Ответ 2

Я могу предложить клонировать ваш репозиторий SmartGit. Он имеет функциональность git -svn, реализованную в java, которая значительно быстрее, чем git -svn и превосходит ее. Надеюсь, это сработает для вас.

Но если у вас есть доступ к серверу репозитория SVN, я рекомендую вам установить SubGit. В этом случае вы получите репозиторий Git, который автоматически синхронизируется с репозиторием SVN (и совместим с безопасностью).

Оба подхода имеют большие преимущества перед git -svn: автоматические теги, игнорирование, перевод EOL. SubGit также пытается сохранить даты как можно, выполняя SVN.