Git SVN не может получить из хранилища SVN - PullRequest
34 голосов
/ 25 февраля 2011

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

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

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

Путь к хранилищу svn: file: /// 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?

Спасибо.

Ответы [ 2 ]

46 голосов
/ 10 июня 2011

Я думаю, что это следующая проблема: 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
1 голос
/ 12 мая 2012

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

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

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

...