Migrar
Este guia de migração defende uma sincronização unidirecional do SVN para o Git durante o período de transição. Ou seja: enquanto sua equipe está se sentindo confortável com o Git, ela ainda deve estar fazendo commits apenas no repositório SVN original. Quando você estiver pronto para fazer a troca, o repositório SVN deve congelar no estado em que se encontrar. Em seguida, os desenvolvedores devem começar a fazer os commits nos repositórios Git locais e compartilhá-los via Bitbucket.
A mudança discreta do SVN para o Git torna a migração muito intuitiva. Todos os desenvolvedores já devem entender os novos fluxos de trabalho do Git que vão usar e ter tido bastante tempo para praticar o uso de comandos do Git nos repositórios locais que clonaram do Bitbucket.
Esta página orienta você durante a etapa final da migração.
Sincronizar o Repositório do Git
Antes de finalizar a migração para o Git, você deve confirmar se o repositório do Git contém quaisquer novas alterações que passaram por commit para o repositório SVN. Você pode fazer essa verificação com o mesmo processo descrito na fase Sincronizar.
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
Clone o repositório SVN
Embora você ainda possa ver o histórico do projeto pré-Git no repositório migrado, é uma boa ideia fazer backup do repositório SVN caso você precise explorar os dados brutos do SVN. Uma maneira fácil de fazer backup de um repositório SVN é executar o seguinte na máquina que hospeda o repositório SVN central. Se o repositório SVN estiver hospedado em uma máquina Linux, você vai poder usar o seguinte:
svnadmin dump | gzip -9 >
Substituir
pelo caminho do arquivo do repositório SVN do qual você está fazendo backup e substitua o
com o caminho do arquivo compactado que contém o backup.
Tornar o repositório SVN somente leitura
Todos os desenvolvedores agora devem fazer os commits com o Git. Para impor essa convenção, você pode tornar o repositório SVN somente leitura. Esse processo pode variar dependendo da configuração do servidor, mas se você estiver usando o daemon svnserve
, você pode alcançar esse resultado editando o arquivo conf/svnserve.conf
do repositório SVN. A seção [general]
deve conter as seguintes linhas:
anon-access = read auth-access = read
Assim o svnserve
é informado de que os usuários anônimos e autenticados só têm permissões de leitura.
Resumo
É tudo o que você precisa saber para migrar um projeto para o Git. Sua equipe agora deve estar desenvolvendo com um fluxo de trabalho puro do Git e aproveitando todos os benefícios do desenvolvimento distribuído. Bom trabalho!