Миграция из Subversion в Git - PullRequest
5 голосов
/ 23 июня 2010

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

  1. Если я начну с размещенного решения Git, трудно ли изменить сервер Git проекта (В Subversion вам просто нужно изменить URL,так далее)?Я хотел бы сделать это, чтобы начать работать с Git и чувствовать себя комфортно перед установкой и обслуживанием своего собственного сервера локально.

  2. Какие шаги следует предпринять для переноса моих данных из Subversion в Git?Придется ли мне проверять каждую ревизию из SVN, экспортировать и фиксировать в Git, чтобы получить историю?

  3. Есть ли у вас какие-либо ошибки, с которыми вы столкнулись?

Несколько причин для изменения: мы делаем много ветвлений и слиянийдобавим несколько разработчиков на эти проекты, у нас будут не всегда разработчики в офисе / в сети / и т. д.

Ответы [ 3 ]

6 голосов
/ 23 июня 2010

1. на самом деле очень легко изменить сервер , поскольку вы клонируете весь репозиторий на своем компьютере, а затем просто переносите его на новый сервер;

2. вы можете использовать git-svn , чтобы клонировать svn-репозиторий в новом git-репозитории с сохранением истории. Сначала вам нужно создать файл пользователей, который отображает всех ваших пользователей SVN на ваших пользователей GIT. Создайте файл на рабочем столе с именем 101 users.txt ’. Сопоставьте пользователей, используя этот формат:

username = Full Name <fullname@provider.com>

Теперь запустите эти команды:

git-svn init url.to.svn.repository --no-metadata
git config svn.authorsfile ~/Desktop/users.txt
git-svn fetch

Первая команда инициализирует каталог как гибрид git-svn и указывает источник в вашем хранилище svn. Флаг --no-metadata указывает git оставить все подробности svn (не журнал фиксации). Следующая команда говорит git переназначить всех пользователей svn для пользователей git. Последняя команда фактически выполняет выборку.

2 голосов
/ 23 июня 2010

во-первых, я бы порекомендовал книгу Pro Git

  1. Это совсем не сложно.Вы можете сделать что-то вроде

    git remote add

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

У меня нет опыта работы с другими ветками в SVN, но для меня было достаточно сделать что-то вроде

GIT SVN клон SVN-РЕПО

0 голосов
/ 23 июня 2010

1) Это тривиально. Git распространяется.

2) Существует много руководств, если вы используете Google, но основная последовательность - это git svn clone, затем преобразуйте все ветви тегов svn в реальные теги git, удалите ветви тегов, затем добавьте git remote и нажмите.

3) Ничего особенного.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...