Criando um servidor de versão no Linux (Ubuntu)

Mas, o que é e para que serve um software de controle de versão?

“Um sistema de controle de versão (ou versionamento), VCS (do inglês version control system) ou ainda SCM (do inglês source code management) na função prática da Ciência da Computação e da Engenharia de Software, é um software com a finalidade de gerenciar diferentes 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.”

by Wikipédia

Poderíamos, é claro, guardar todas as versões de todos os arquivos que criamos sem a ajuda de uma ferramenta de controle de versão. Porém, além do desperdício de um espaço considerável em disco, o Subversion armazena todas as versões de uma forma inteligente, guardando apenas as diferenças entre as versões. O que é muito mais vantajoso.

Para se trabalhar com um servidor de controle de versão, precisamos ter alguns conceitos em mente:

Repositório: Local onde o(s) projeto(s) será(ão) armazenado(s).

Trunk: Diretório onde se encontrará o projeto em fase de desenvolvimento (Dia a dia). O desenvolvimento do projeto começa aqui dentro.

Branch: Diretório destinado às fases de testes. Vamos supor o seguinte cenário, enquanto a Equipe A trabalha no desenvolvimento de novas funcionalidades da versão 1.0 do projeto, a Equipe B já inicia alguns testes para adicionar na versão 2.0 do projeto. Este projeto é de grande importância. Tudo o que for feito como forma de testar algo, sem comprometer o projeto como um todo, deverá ser colocado dentro deste diretório.

Tags: Diretório destinado às releases do projeto. Sempre que novas funcionalidades são adicionadas ao projeto e/ou bugs são corrigidos novas versões surgem dentro do diretório TAGS.

Vamos agora ao que interessa, instalar o SVN.

Vamos começar instalando apache, para que possamos acessar o svn remotamente através do protocolo http.

$ sudo apt-get install apache2

Para testar a instalação do apache, acesso a url http://localhost.

Vamos agora instalar o subversion

$ sudo apt-get install subversion subversion-tools

Ao final deste comando, o svn já estará instalado, para testar se a instalação foi ok, execute o comando:

$ svn –version

Você terá detalhes como a versão instalada e módulos disponíveis.

O próximo passo será criar um local para armazenar os arquivos do repositório, eu escolhi /home/svn, pois meu /home esta montado numa partição diferente da / (raiz) mas escolha um local do seu agrado.

Crie o diretório através do comando.

$ sudo mkdir -p /home/svn

Agora vamos criar ums estrutura básica.

$ sudo svnadmin create /home/svn/repositorio

Agora vamos instalar e configurar o módulo que permite o acesso via http.

$ sudo apt-get install libapache2-svn

O próximo é abrir o arquivo /etc/apache2/mods-available/dav_svn.conf.

$ sudo gedit /etc/apache2/mods-enabled/dav_svn.conf

Descomente as seguintes linhas:

<Location /svn>

DAV svn

SVNParentPath /home/svn <- altera para o local que vc escolheu

AuthType Basic

AuthName “Subversion Repository Access”

AuthUserFile /etc/apache2/dav_svn.passwd

<limitexcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</limitexcept>

</Location>

Reinie o apache para que as alterações tenham efeito

$ sudo service apache2 restart

Agora você já pode acessar o svn através do navegador.

http://localhost/svn/repositorio/

Você verá uma tela com:

repositorio – Revision 0: /

Está tudo OK até agora, mas temos coisas a fazer ainda.

Antes de abrir o svn para os usuários, vamos alterar algumas permissões para que o apache possa gravar dados no diretório do repositório.

$ sudo chown -R www-data.www-data /home/svn

Vamos agora criar os usuário que terão acesso ao svn e poderão gravar dados no mesmo.

$ sudo htpasswd -c /etc/apache2/dav_svn.passwd usuario

Sigite a nova senha e confirme-a.

Basta agora você configurar sua IDE preferida para acessar o SVN através do endereço http://localhost/svn/repositorio ou http://ip-do-servidor/svn/repositorio.

Você pode e deve estar incrementando a parte de segurança do seu servidor com protocolo seguro e outros recursos.

Existe um projeto para tradução do livro oficial do subversion, que pode ser acesado livremente através da URL http://code.google.com/p/svnbook-pt-br/.

Acesse o projeto e inscreve-sa para ajudar nas traduções, faça parte da comunida open source.

Leituras recomendadas

http://pt.wikipedia.org/wiki/Subversion
http://code.google.com/p/svnbook-pt-br/
http://ariejan.net/2006/12/01/how-to-setup-a-ubuntu-development-server-part-1/
http://penguim.wordpress.com/2008/09/23/subversion-com-apachesslbasicauth-no-ubuntu-server-804/

Uma ideia sobre “Criando um servidor de versão no Linux (Ubuntu)

  1. Pingback: Configuração de ambiente Eclipse Web « Soloplayer’s Weblog

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alteração )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alteração )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alteração )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alteração )

Conectando a %s