Переход

Переход

В этом руководстве по миграции рекомендуется односторонняя синхронизация из SVN в Git во время переходного периода. Это означает, что пока ваша команда привыкает к работе с Git, ее участникам все равно нужно использовать только исходный репозиторий SVN. Когда вы будете готовы к переходу, репозиторий SVN будет заморожен в текущем на тот момент состоянии. Затем разработчики начнут создавать коммиты в свои локальные репозитории Git и делиться ими через Bitbucket.

Миграция Git: односторонняя синхронизация из SVN в Git

Отдельный переход с 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 и пользоваться всеми преимуществами распределенной разработки. Отличная работа!

Готовы изучить Git?

Ознакомьтесь с этим интерактивным обучающим руководством.

Начните прямо сейчас