Blog da EVEO

Já conhece o Subversion?

Escrito por Vicente Neto | Jun 30, 2010 9:34:42 PM

Já conhece o Subversion?

Subversion é uma ferramenta open-source de controle de versão. O projeto iniciou em 2000 com a idéia de se construir um CVS melhor, isto é, mantendo o mesmo modelo de trabalho, mas consertando as falhas e limitações que o CVS apresenta. Desde então, vem atraindo uma comunidade cada vez maior de colaboradores e usuários.

O objetivo de substituir o CVS como padrão vem sendo alcançado pouco a pouco. Diversos projetos open source representativos já migraram seus repositórios para o Subversion, tais como: Apache, Debian, Zope, KDE, Mono, Conectiva Linux, entre outros.

Funcionalidades

O Subversion tem a maior parte das funcionalidades do CVS. De modo geral, a interface do Subversion segue à do CVS. Isto facilita a transição dos usuários do CVS para o Subversion.

Controle de Diretórios, Renomeações e Meta-Dados

Esta era uma das maiores reclamações sobre o CVS. Subversion não só controla a versão do conteúdo dos arquivos, mas também de diretórios, cópias, renomeações e meta-dados.

Operações Atômicas de commit

Um conjunto de modificações a serem realizadas num commit é aceito como um todo ou nenhuma alteração é feita. Não há a possibilidade que apenas uma parte das alterações seja aceita quando enviadas ao repositório tal como acontecia no CVS. Além disso, os números de revisão estão atrelados a cada operação de commit e não aos arquivos.

Opções de Acesso à Rede

Subversion foi projetado para uma camada abstrata de acesso ao repositório, o que permite a implementação de novos mecanismos de rede. Um dos mecanismos existentes usa o protocolo WebDAV/DeltaV baseado em HTTP através do Apache 2. A outra opção é o servidor dedicado svnserve como opção ao Apache, e que pode ser combinado ao ssh.

Arquivos Binários e de Texto Tratados Consistentemente

Outro grande problema bastante conhecido é que o CVS que não funciona tão bem com arquivos binários. Por outro lado, o Subversion usa um algoritmo de diferenciação binário que funciona de modo idêntico tanto para arquivos texto (legíveis por humanos) quanto para arquivos binários (ilegíveis para humanos).

Ramificações e Rotulações em Tempo Constante

O tempo das operações de ramificação (branching) e rotulação (tagging) é constante, e não depende do tamanho do projeto no repositório. Esse resultado é obtido através da forma de implementação do Subversion para essas operações, que é feita como uma operação de cópia que resulta em links, ocupando pouco espaço e um intervalo de tempo constante.

Uso mais Eficiente da Rede

O protocolo de rede usa a largura de banda eficientemente enviando as diferenças entre cliente/servidor e servidor/cliente sempre que possível, ao contrário do CVS que envia as diferenças do servidor ao cliente, mas não do cliente ao servidor.

Como posso usar?

O Subversion já está disponível para todos os nossos clientes em plataforma Linux, para utilizá-lo abra um chamado com o nosso suporte técnico fazendo esta solicitação.

Fonte: Este post foi retirado de um trecho da matéria sobre o Subversion no site da Pronus Engenharia de Software, que inclusive tem a disposição um curso sobre o Subversion. Clique aqui para ver a matéria completa.

Agradecimento: Agradecemos ao cliente Joel Wallis (http://joelwallis1.wordpress.com) que fez a sugestão para disponibilizarmos o Subversion.