2014-12-02 2 views
10

Я следую инструкциям в: http://git-scm.com/book/en/v2/Git-and-Other-Systems-Git-as-a-Clientмерзавца СВН миграции неудача с SVN 1.8

переместить хранилище SVN мерзавца. Моя локальная версия SVN является: версия

$ svn --version svn, version 1.8.10 (r1615264) compiled Aug 25 2014, 10:52:18 on x86_64-apple-darwin12.5.0

мерзавца:

$ git --version git version 2.1.0

Когда я клонировать репозиторий я получаю ошибку чтения формата локального файловой системы:

$ git svn clone file:///tmp/test-svn -s 
Initialized empty Git repository in /private/tmp/test-svn/.git/ 
Couldn't open a repository: Unable to connect to a repository at URL 'file:///tmp/test-svn': Unable to open an ra_local session to URL: Unable to open repository 'file:///tmp/test-svn': Expected FS format between '1' and '4'; found format '6' at /usr/local/Cellar/git/2.1.0/lib/perl5/site_perl/Git/SVN.pm line 310 

В соответствии с этим примечанием о выпуске svn формат FS 6 был введен в svn 1.8: http://subversion.apache.org/docs/release-notes/1.8.html#revprop-packing

Не может ли быть git 2.1 скрипт Perl еще не совместим с этой версией svn? Что еще более важно, как я могу получить этот репозиторий svn, преобразованный в git?

+0

Я попытался обновить git до последней версии 2.2 и по-прежнему получить ту же ошибку. – saschwarz

ответ

17

Я получил ответ на список адресов git-users.

Решение состоит в том, чтобы запустить локальный svnserver и использовать протокол svn при запуске «git svn clone» вместо протокола «file». Это позволяет избежать git-svn, чтобы проанализировать формат файла svn 1.8.

Итак, я перешел в каталог /tmp и запустил svnserve -d. Тогда я смог git svn clone svn://127.0.0.1/test-svn -s, и он прошел отлично. Затем я остановил svnserver и удалил временный репозиторий svn.

+0

Не могли бы вы привести пример с путями, которые входят в командную строку 'svnserve' и' ssh: // ... '? – Kromster

+8

'cd' в родительский каталог' test-svn' (или что-то, что вызвано вашим SVN-репо-я использую этот пример). Затем запустите 'svnserve -d -foreground -r .'. Ваш URL-адрес репо теперь 'svn: // localhost/test-svn'. –

+0

Не должно быть 'svn: //' в вашем ответе, а не 'ssh: //'? –

Смежные вопросы