Close

Подготовка

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

Все следующие шаги необходимо выполнять на локальной машине руководителя процесса перехода.


Загрузка скрипта перехода


В комплект поставки Git входит большинство инструментов, необходимых для импорта репозитория SVN, однако там не хватает нескольких функциональных элементов, которые команда Atlassian поместила в удобный JAR-файл. Файл svn-migration-scripts.jar обязателен для выполнения миграции, поэтому загрузите его из аккаунта Atlassian Bitbucket. В этом руководстве предполагается, что вы сохранили файл в домашнем каталоге. Обратите внимание, что для миграции из SVN нужна файловая система, чувствительная к регистру (NTFS не подойдет). Рекомендуется использовать машину с Linux.

После загрузки рекомендуется проверить скрипты, чтобы убедиться, что у вас установленыJava Runtime Environment ,Git ,Subversion и утилита git-svn. Откройте командную строку и запустите следующую команду:

java -jar ~/svn-migration-scripts.jar verify

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

базы данных
Связанные материалы

Перемещение полного репозитория Git

Логотип Bitbucket
СМ. РЕШЕНИЕ

Изучите Git с помощью Bitbucket Cloud

Если вы получите предупреждение о том, что невозможно определить версию, выполните команду export LANG=C (*nix) или SET LANG=C (Windows) и повторите попытку.

Если вы осуществляете переход на компьютере с операционной системой OS X, вы также увидите следующее предупреждение:

You appear to be running on a case-insensitive file-system. This is unsupported, and can result in data loss.

Мы рассмотрим этот вопрос в следующем разделе.

Установка чувствительного к регистру образа диска


Переход к Git должен осуществляться с чувствительной к регистру файловой системой, чтобы избежать повреждения репозитория. Могут возникнуть проблемы, если переход выполняется на компьютере с операционной системой OS X, т.к. файловая система OS X является нечувствительной к регистру.

Если вы не используете OS X, вам просто нужно создать каталог на своей локальной машине под именем ~/GitMigration. Здесь будет выполняться преобразование. После чего можно перейти к следующему разделу.

Переход к Git: установка образа диска

Если вы используете операционную систему OS X, необходимо установить чувствительный к регистру образ диска со скриптом create-disk-image, включенным в файл svn-migration-scripts.jar. Следует выбрать два параметра:

1. Размер создаваемого образа диска в гигабайтах. Можно использовать любой размер, превышающий размер репозитория SVN, перевод которого вы выполняете.

2. The name of the disk image. This guide uses GitMigration for this value.

Например, следующая команда создает образ диска размером 5 Гб под именем GitMigration:

java -jar ~/svn-migration-scripts.jar create-disk-image 5 GitMigration

Образ диска устанавливается в корневой каталог, и теперь вы можете видеть каталог с именем ~/GitMigration на своей локальной машине. Он служит виртуальной, чувствительной к регистру файловой системой, и сюда сохраняется преобразованный репозиторий Git.

Извлечение авторских данных


SVN записывает только имя пользователя автора каждой версии. Git сохраняет полное имя и адрес электронной почты автора. Это означает, что вам необходимо создать текстовый файл, который преобразовывает имена пользователя SVN в их аналоги в Git.

Переход к Git: преобразование имен пользователей SVN в имена пользователей Git

Запустите следующие команды, чтобы автоматически создать этот текстовый файл:

cd ~/GitMigration 
java -jar ~/svn-migration-scripts.jar authors <svn_repo_uri> > authors.txt

Обязательно замените <svn_repo_uri> на URI репозитория SVN, миграцию которого вы выполняете. Например, если репозиторий находился на https://svn.example.com, необходимо запустить команду:

java -jar ~/svn-migration-scripts.jar authors https://svn.example.com > authors.txt

Будет создан текстовый файл authors.txt, который содержит имена пользователя всех авторов в репозитории SVN вместе с генерированным именем и адресом электронной почты. Он должен выглядеть примерно так:

j.doe = j.doe <j.doe@mycompany.com> 
m.smith = m.smith <m.smith@mycompany.com>

Замените значение справа от знака равенства на полное имя и адрес электронной почты соответствующего пользователя. Например, данные вышеуказанных авторов можно изменить на:

j.doe = John Doe <john.doe@atlassian.com>
m.smith = Mary Smith <mary.smith@atlassian.com>

Резюме


Теперь у вас есть скрипты перехода, образ диска (только для OS X only) и авторские данные, и вы готовы к выполнению импорта истории SVN в новый репозиторий Git. На следующем этапе поясняется, как происходит преобразование.


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Люди сотрудничают друг с другом, используя стену со множеством инструментов

Блог Bitbucket

Рисунок: DevOps

Образовательные программы DevOps

Демонстрация функций в демо-зале с участием экспертов Atlassian

Как инструмент Bitbucket Cloud работает с Atlassian Open DevOps

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up