segunda-feira, 31 de maio de 2010

Configurar Repositório Externo no Subversion

Quando estamos desenvolvendo alguns projetos, as vezes precisamos buscar código-fonte de repositórios externos. Isso é interessante até mesmo no desenvolvimento in house, pois as vezes utilizamos bibliotecas em diferentes projetos. Desta forma conseguimos manter uma base de software para diferentes aplicativos e atualizá-las de forma fácil.

Para configurar os repositórios externos utiliza-se os comandos:
svn propget
svn propset
O comando propget serve para você solicitar uma propriedade configurada em um diretório. Um exemplo de sua utilização é:
svn propget svn:externals .
O ponto do final se refere ao diretório corrente, caso queira pegar a propriedade de outro diretório basta passar um caminho no lugar do ponto.

O comando propset server para setar uma propriedade e sua syntaxe é:
svn propset svn:externals 'dir_local http://endereco.svn.remoto/nome/do/diretorio' .
Repare o ponto no final. Este comando diz que no diretório corrente (o ponto) será criado um diretório com o nome dir_local e seu conteúdo será buscado do repositório http://endereco.svn.remoto/nome/do/diretorio.

Após está mudança, basta fazer um commit e um update das alterações para buscar o repositório externo. Caso você queira criar mais de um repositório externo adicione todas as referência externas em um arquivo da seguinte forma:
dir_local1 http://endereco.svn.remoto/nome/do/diretorio1
dir_local2 http://endereco.svn.remoto/nome/do/diretorio2
dir_local3 http://endereco.svn.remoto/nome/do/diretorio3
E ao utilizar o comando svn propset faça o seguinte:
svn propset svn:externals -F nome_do_arquivo .
Não esqueça depois de setar a propriedade de realizar um commit.

Isso é realmente muito fácil, mas a documentação do SVN deixa bastante a desejar em relação a um recurso tão útil.