Apache Subversion (SVN)

Resultado de imagem para apache subversion


O Subversion (SVN) é um sistema de controle de versão centralizado open-source que gerencia arquivos e diretórios controlando as alterações realizadas ao longo do tempo. Além disso, é possível recuperar versões anteriores ou visualizar o histórico de alterações. Tem como ponto forte a utilização em rede, possibilitando que vários usuários possam trabalhar colaborativamente.

Permite que você recupere versões antigas de seus dados, ou que examine o histórico de suas alterações. É um sistema de caráter geral que pode ser usado para gerenciar quaisquer conjuntos de arquivos (código-fonte, arquivos de edição de vídeo, etc.)

O SVN utiliza o conceito de branches, tags e trunk, em analogia a uma estrutura em árvore:

  • Trunk: pasta que contém os projetos que estão em desenvolvimento. Todas as atualizações efetuadas dia-a-dia são armazenadas nesta pasta.
  • Branches: pasta que contém “linhas de desenvolvimento” de tal projeto, que entre elas podem haver poucas diferenças, porém uma independe da outra. Quando o projeto está pronto para ser liberado como uma versão estável, a pasta trunk é copiada para a pasta branch e dado um nome de versão. Este branch é congelado, não sofrendo mais alterações, apenas correções. Os testes são efetuados.
  • Tags: quando os testes efetuados na branch estão completos, a versão que se encontra na branch é copiada para a pasta tags, criando a “release”. A pasta tag é empacotada e enviada para o cliente. Qualquer modificação em branch, deve ser copiada para a pasta de tags, após todos os testes. O SVN considera tag apenas uma variação de um branch, e na prática é exatamente como um branch, apenas uma cópia da ramificação atual da árvore.
O SVN foi construído pensando em aproveitar os pontos positivos do CVS e corrigir e melhorar os aspectos negativos. Dentre seu leque de funcionalidades, podemos destacar o versionamento de diretórios, versionamento de renomeação, cópia e exclusão, commits atômicos, merge tracking, bloqueio de arquivos e resolução de conflitos interativos.

Durante certo tempo o SVN era a escolha número um para o versionamento de código, cenário este que foi mudando com a larga adoção do Git. No entanto, a Apache mantém o SVN até os dias atuais, sendo atualizado com certa frequência e recebendo funcionalidades de grande relevância, algumas delas visando incorporar algumas funcionalidades já fornecidas pelas soluções distribuídas. Para sua utilização recomenda-se a utilização de alguma das ferramentas de apoio listadas a seguir:

  • Apache Subversion: versão oficial do Subversion;
  • VisualSVN Server: implementação em Windows. É uma ferramenta prática e fácil de instalar o servidor SVN oficial. Possui um ambiente gráfico de gerenciamento e permite a visualização do conteúdo dos repositórios diretamente pelo navegador;
  • TortoiseSVN: considerada a melhor ferramenta gráfica para utilização do SVN em ambiente Windows;
  • RabbitVCS: ferramenta gráfica para utilização do SVN em Linux inspirada no TortoiseSVN;
  • Commit Monitor: permite o recebimento de alertas a cada commit realizado nos repositórios SVN;

Comentários

Postagens mais visitadas deste blog

Plano de Projeto de Software do SIUR

Vocabulário comum entre os Sistemas de Controle de Versão

Git