Instalando servidor SVN no Linux

“Um sistema de controle de versão é um software que tem finalidade gerenciar diferentes tipos de versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as diferentes versões – histórico e desenvolvimento – dos códigos-fontes e também da documentação. Este tipo de sistema é muito presente em empresas e instituições de tecnologia e desenvolvimento de software. É também muito comum no desenvolvimento de software livre. É útil, em diversos aspectos, tanto para projetos pessoais pequenos e simples como também para grandes projetos comerciais.”

Texto retirado do Wikipedia

Recentemente foi necessário instalar e configurar um servidor svn na empresa que estagio. Devido a grande quantidade de informação inútil absorvida na internet e minha total inexperiência no assunto, a instalação demorou mais do que o necessário porém o procedimento é bem simples. A instalação foi feita numa máquina virtualizada através do VMware com o Debian Lenny.

Vamos lá !

Para o funcionamento do Servidor SVN é necessário a instalação de três pacotes, o subversion, apache2 e a libapache2-svn. Para instalar os pacotes, como root, digite no terminal

#apt-get install subversion

#apt-get install apache2

#apt-get install libapache2-svn

Bem agora é necessário adicionar duas linhas no arquivo de configuração do apache, “httpd.conf” e caso você esteja usando Debian é necessário fazer o mesmo para o “apache2.conf”. Ambos são encontrados em /etc/apache2/

Adicione o seguinte

LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so

LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so

Depois é necessário reiniciar o servidor apache

rodrigoclira:/etc/apache2/# /etc/init.d/apache2 restart

Será impresso algo parecido com isso na tela

Forcing reload of web server: Apache2[Sun Apr 03 22:16:45 2010] [warn] module dav_module is already loaded,skipping

[Sun Apr 03 22:16:45 2010] module dav_svn_module is already loaded,skipping

[Sun Apr 03 22:16:48 2010] module dav_module is already loaded, skipping.

[Sun Apr 03 22:16:48 2010] module dav_svn_module is already loaded,skipping

Bem, está quase tudo pronto, agora é necessário rodar o comando svnserve que permite acessar aos repositórios usando o svn network protocol.

#svnserve -d

DICA Adicione esse comando no script de inicialização da máquina, veja como no artigo do vivaolinux

Acabada as configurações, vamos criar um repositório SVN

rodrigoclira@desktop:/home/rodrigoclira# svnadmin create projeto

Onde “projeto” é o nome do repositório a ser criado. Para acessar externamento ao repositório por um cliente SVN, como o TortoiseSVN , RapidSVN ou o svn, dê um checkout informando na url o seguinte

svn://IPdaMAQUINA/CAMINHOdoREPOSITORIO

 

Se tudo foi feito corretamente aparecerá a confirmação do checkout, informando que não há alterações no repositório.

Esse tutorial é baseado no Playing with SVN do Debian Administrator

Próximo post eu escreverei algumas dicas e explicarei como colocar autenticação no repositório SVN.

| Autenticação no repositório svn

| Controle de Versão com Subversion

| HP12C on line

Rodrigo Lira


  • rildomar lucena

    Rodrigo, Boa noite, gostaria de saber se depois da “base” propriamente dita, é feita no linux, em qualquer lugar que eu queira usar a svn, pra dar checkout no diretório, ele irá pegar? colocando é claro a url completa do diretório

    estou com esse problema, e ja tem mais de meses que tento, tento e nao saio do canto.

    Uso a VirtualBox.. minha duvida tambem é.. o meu ip na vm é 10.0.2.18, se eu jogar ele la na tortoiseSVN ele irá reconhecer na minha maquina ou seja ele qualquer da rede de fora?

  • Oi Rildomar, quando eu fiz esse post era para esse mesmo propósito,
    o servidor ficava numa máquina virtual (vmware) creio que se não está pegando deve ser algum problema com o caminho ou com a rede estabelecida entre a máquina hospedeira e a máquina virtual. Você consegue ter algum tipo de comunicação entre elas?
    Sobre o problema do IP eu utilizava dessa forma que você comentou svn://IP/CaminhoDoRepositorio.

    Você já viu se o outro post ajuda em algo?
    http://rodrigolira.wordpress.com/2010/04/11/autenticacao-no-repositorio-svn/

    Abraço.