Переход
В этом руководстве по миграции рекомендуется односторонняя синхронизация из SVN в Git во время переходного периода. Это означает, что пока ваша команда привыкает к работе с Git, ее участникам все равно нужно использовать только исходный репозиторий SVN. Когда вы будете готовы к переходу, репозиторий SVN будет заморожен в текущем на тот момент состоянии. Затем разработчики начнут создавать коммиты в свои локальные репозитории Git и делиться ими через Bitbucket.
Отдельный переход с SVN на Git способствует интуитивно понятной миграции. К этому моменту все ваши разработчики разберутся в новых рабочих процессах Git, которыми им предстоит пользоваться, и у них будет достаточно времени, чтобы опробовать команды Git в локальных репозиториях, клонированных из Bitbucket.
На этой странице вы найдете информацию о последнем шаге миграции.
Синхронизация репозитория Git
Прежде чем завершить миграцию на Git, убедитесь, что ваш репозиторий Git содержит все новые изменения, внесенные в репозиторий SVN. Это можно сделать с помощью того же процесса, который описан для этапа синхронизации.
git svn fetch java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar sync-rebase java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git --force
Резервное копирование репозитория SVN
Несмотря на то что вы по-прежнему можете просмотреть в перенесенном репозитории историю проекта, сохраненную до перехода в Git, рекомендуется создать резервную копию репозитория SVN на тот случай, если вам понадобится изучить необработанные данные SVN. Простой способ создать резервную копию репозитория SVN — это выполнить приведенную ниже команду на машине, где размещен центральный репозиторий SVN. Если ваш репозиторий SVN размещен на Linux-машине, вы можете использовать следующую команду:
svnadmin dump <репозиторий-svn> | gzip -9 > <файл-резервной-копии>
Замените <репозиторий-svn>
на путь к репозиторию SVN, для которого вы создаете резервную копию, а <файл-резервной-копии>
— на путь к сжатому файлу, содержащему резервную копию.
Установка режима «только чтение» для репозитория SVN
К этому моменту все ваши разработчики должны освоить Git. Чтобы обеспечить соблюдение соглашения, вы можете установить для репозитория SVN режим «только чтение». Этот процесс может отличаться в зависимости от настроек сервера, но если вы используете демон svnserve
, то это можно сделать, отредактировав файл conf/svnserve.conf
репозитория SVN. Раздел [general]
должен содержать следующие строки:
anon-access = read auth-access = read
Они говорят svnserve
, что анонимные и аутентифицированные пользователи имеют право доступа только на чтение.
Резюме
Из этой статьи вы узнали, как перенести проект в Git. Теперь ваша команда может работать с чистым рабочим процессом Git и пользоваться всеми преимуществами распределенной разработки. Отличная работа!