Arquivo para julho \06\-03:00 2010

Migrando projetos de SVN para outro SVN

Este pequeno artigo tem o objetivo de auxiliar no processo de migração de projetos de um servidor SVN para outro também SVN.

Não levo em conta a migração de histórico de versão e outras funcionalidades, o objetivo é auxiliar iniciantes no processo de migração de servidor Subversion.

Possivelmente existem soluções mais completas e eficazes.

Como funciona o SVN

Um projeto é identificado como versionado por SVN quando possui uma para em cada diretório deste chamada “.svn”. Ali se encontram arquivos que informam a localização do serviço assim como outras configurações pertinentes.

Todos subdiretórios de um projeto SVN possuem sua própria pasta .svn com seu conjunto de configurações (muitas vezes essa pasta se encontra oculta pelo sistema operacional).

Migrando Projeto

Basicamente temos que efetuar o check-out de ambos os projetos, o antigo e o novo (que se encontra vazio).

Em seguida teremos que copiar o conteúdo de um repositório para outro e efetuar commit, porém o processo não é tão simples assim, primeiramente teremos que efetuar alguns procedimentos para evitar conflitos.

Removendo Conflitos

Como o serviço svn, assim como o cvs, se baseia em pastas ocultas, no caso chamadas  “.svn”, para registrar as informações de versionamento. antes de enviar para um novo servidor é necessário remover tais diretórios. O processo manual seria bastante cansativo, pois o projeto pode conter inúmeras subpastas dessa forma podemos utilizar as soluções a seguir:

* Certifique-se de ter realizado o commit todas as alterações no projeto antigo, pois a partir do momento que você remover os .svn você não mais conseguirá o fazer.

Removendo diretórios .svn no console do Linux

O comando a seguir irá remover todos os diretórios .svn do projeto localizado em “/home/alandaniel/workspace/projeto”:

$ find /home/alandaniel/workspace/projeto -iname .svn -exec rm -rf {} \;

Remover diretórios .svn utilizando o Eclipse

Para remover os diretórios no eclipse existem duas formas,  uma é pelo menu próprio para isso:

  • Botão direito no projeto: Team > Disconect > Marque “Also delete the svn meta…”

Outra solução, e mais recomendada, é exportar o projeto, assim você irá gerar uma cópia deste:

  • Botão direito no projeto: Export > Selecione File System > next  > Selecione o lugar a exportar > Next …

Passos Finais

Copie o novo conteúdo para o novo projeto e efetue o commit.