git

Migrando um repositório SVN para GIT

Nos últimos dias, pesquisei uma forma de migrar um repositório de SVN para GIT e quando consegui fazer, percebi que era mais fácil que eu imagina. Com isso, resolvi escrever uma receitinha de como fazer isso.

Inicialmente você deve criar um arquivo mapeando seus usuários do SVN para o GIT. Ele deverá ter o formato abaixo:

leonardo = Leonardo Faria <leonardo@email.com>
autor2 = Autor <autor@email.com>

Nota: caso você não queira manualmente escrever esse arquivo, vasculhe o log do seu projeto SVN e obtenha a lista de autores automaticamente:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors.txt

A seguir, crie um novo repositório e defina os autores dos commits de acordo com o criado no arquivo acima.

mkdir repo && cd repo
git svn init http://server/svn/project/trunk --no-metadata
git config svn.authorsfile ~/authors.txt

Lembre-se que todos os autores de commits devem constar no arquivo, caso contrário o processo não irá funcionar. Em seguida, execute:

git svn fetch

Dependendo do tamanho do seu repositório, isso pode demorar um pouco.
Em seguida, é só adicionar as configurações do servidor e pronto!

git remote add origin git@server:path/repo.git
git push -u origin master

Uma coisa mais

Você também pode converter as propriedades do svn:ignore para um arquivo .gitignore. Para isso:

git svn show-ignore > .gitignore
git add .gitignore
git commit -m 'Convert svn:ignore properties to .gitignore.'

Interactions

Webmentions

Like this content? Buy me a coffeeor share around:

0 Like

0 Reply & Share