Rubem
Rubem
Jul 24, 2017 · 2 min read

Migração de SVN para GIT

Recentemente foi-me lançado o desafio de migrar um servidor de svn para git , e comecei logo a procura de importações directas, sendo que encontrei sugestões tais como o svn2git e subgit.

No entanto não se adequavam ao que se pretendia fazer, então após mais alguma pesquisa, encontrei várias referências a um comando do git que permitia clonar um repositório de SVN para Git e conseguir manter o histórico do mesmo sem configuraçoes extra ou programa externos. O comando em causa é o

git svn clone http://svn/

Atráves deste comando é efectuado um pedido ao servidor de svn e será criada uma nova directória para o repositório em causa, sendo que este comando tem a possibilidade de aceitar os parametros que podem ser passados para os init e fetch da utilização de git.

No entanto de nada nos serve um clone de um repositório sem os logs e o mapeamento dos autores dos commits para o sistema que está a ser utilizado. Para tal basta utilizar os seguintes comandos.

svn log — xml | grep “<author>” | sort -u | perl -pe ‘s/.*>(.*?)<.*/$1 = /’ | tee users.txt

Este primeiro comando deverá ser executado no servidor de svn actual , com este comando será possivel gerar um ficheiro com as informações relativas a todos os autores de commits do svn em causa. Este ficheiro será utilizado como ficheiro de mapeamento de migração de commits e logs para o Git.

git svn clone — stdlayout — no-metadata — authors-file=users.txt svn://hostname/path dest_dir-tmp

Este segundo comando irá fazer clone do repositório no servidor de SVN e irá criar um repositório de Git local, com a informação de todos os commits e logs deste novo repositório.

Será necessário ainda especificar o remote origin que iremos utilizar para todas as ações futuras , para tal basta executar os seguintes comandos:

git remote add origin git@server:user/project-name.gitgit push origin — all 

A partir deste momento será possivel sincronizar o repositório migrado com o servidor de Git.

Written by

Rubem

Coder By Day | Student By Night

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade