2016-05-09 3 views
0

У меня есть 3 хранилища svn, каждый из которых имеет 30 ~ проектов в них. Я хочу преобразовать эти 3 svn-репозитории в репозитории Git, причем их соответствующие проекты хранятся внутри. Чтобы дать четкое представление о том, где это представление о структуре у меня есть:Svn2git Migration: репозиторий/осложнение проекта

-Repository1 
    -- project1 
    -- project2 
    -- project3 
    -- project4 
    -- project5 
-Repository2 
    -- project1 
    -- project2 
    -- project3 
    -- project4 
    -- project5 
-Repository3 
    -- project1 
    -- project2 
    -- project3 
    -- project4 
    -- project5 

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

Когда я выполняю команду как это:

svn2git http://address/address/Repository1/project1 --authors ../authormap.txt --metadata 

создает папку проекта в репозиторий, который я не хочу; потому что это не относится к моей структуре svn.

Мне нужна команда, которая преобразует весь мой репозиторий (вместе с 30 проектами в нем) в репозиторий Git. Мне сказали, чтобы удалить projectName в конце адреса, как это:

svn2git http://address/address/Repository1 --authors ../authormap.txt --metadata

однако это не сработало, я получил:

command failed: 
git checkout -f master 

Я пытался методы почти день, пока не повезло. Не должно быть разочаровывающим и сложным преобразование репозитория. У кого-то есть твердая идея по этому вопросу?

ответ

-1

Есть инструменты pleny, называемые svn2git, но из вашего вопроса я бы предположил, что вы не используете KDE один из https://github.com/svn-all-fast-export/svn2git. Я настоятельно рекомендую использовать этот инструмент svn2git. Это лучшее, что я знаю, доступный там, и он очень гибкий в том, что вы можете делать с его файлами правил.

Вы легко сможете настроить его для своего макета, чтобы получить ожидаемый результат.

Если вы не 100% об истории своего репозитория, svneverever от http://blog.hartwork.org/?p=763 - отличный инструмент для исследования истории хранилища SVN при переносе его на Git.

+0

'svneverever' возвращает' Сервер отправил неожиданное возвращаемое значение (500 Internal Server Error) в ответ на запрос PROPFIND для '/svn/X/!svn/bc/90/X.gui.app/trunk/META-INF' Ошибка чтения буферизованного ответа на запрос отклика 'на 25.45% все время, поэтому я не могу его использовать. –

+0

Возможно, это работает лучше, если вы получите локальную копию репозитория и проанализируете это. Вам все равно нужно svn2git. – Vampire

+0

Что касается правил, я не смог найти какой-либо пример под/samples, который похож на мою структуру. Они все как-то воображают, что репозиторий - это всего лишь один проект с багажником - что не мое дело. У меня есть 30 проектов в моем репозитории, каждый из которых имеет свой собственный багажник. –