Для начала устанавливаем клиентскую версиою Git. Я использовал msysgit версии 1.7.8-preview.
Предположим, что наш локальный SVN репозиторий находится в папке C:\workspace\Repository и свн установлен на машине.
Открываем командное окошко (cmd) и набираем команду
svnserve --daemon --root C:\workspace\Repository
Этим мы запустили сервер SVN, который дает нам возможность удаленного доступа к нашему репозиторию по протоколу svn, что даст возможность Git его скачать. Теоретически и документация говорит, что git svn должен понимать протокол file://, но если бы все было так просто... на StackOverflow нашел свою проблему с решением
Далее создаем новую папку в которой будет создан локальный слепок SVN репозитория в GIT формате (в моем случае C:\workspace\git-repository)
Запускаем Git-bash в этой папке из контекстного меню Windows Explorer. И запускаем команду
$ git svn clone svn://localhost --no-metadata
Чем больше репозиторий, тем дольше она будет выполняться. В моем случае на 100 комитов она выполнялась минут 5. После чего у меня появилась папка localhost с содержимым svn репозитория и отображением всего SVN репозитория в локальном репозитории GIT.
Перехожу в эту папку
$ cd localhost/
и связываю локальный репозиторий с удаленным репозиторием Github, который я заблаговременно создал:
$ git remote add origin git@github.com:tdd-elevator-training/elevator.git
после чего мне осталось залить (пушнуть) изменения на сервер, что я с радостью и делаю вот таким способом:
$ git push -u origin master
Все, мой SVN репозиторий полностью со всей историей и даже с сохраненными авторами начальных комитов в Github.
No comments:
Post a Comment