Rybena

quinta-feira, 3 de junho de 2010

Controle de Versão

Um sistema de controle de versão (ou versionamento), VCS "version control system" ou ainda SCM "source code management". Tem como finalidade gerenciar diferentes versões de documentos, softwares etc...

Atualmente ele é bastante utilizado na área de informática, principalmente no desenvolvimento de software, também é muito comum no desenvolvimento de software livre. Pode ser usado em diversos aspectos, tanto para projetos pessoais, quanto para projetos comerciais.

Entre os mais utilizados no mercado estão:

  • CVS -> Concurrent Version System (Sistema de Versões Concorrentes), "OpenSource";
  • SVN -> Subversion, "OpenSource";
  • Git -> "OpenSource";
  • SourceSafe -> Microsoft Visual SourceSafe, "Comercializado pela Microsoft";
  • ClearCase -> Ferramenta de versionamento da IBM "Comercializado pela IBM";

Neste artigo estaremos estudando o SubVersion uma ferramenta OpenSource. Abordaremos os seguintes assuntos:

  • O que é Subversion?
  • Um pouco da história deste cara "Relembrar é viver".
  • Caracteristicas.
  • Instalação e configuração do subversion server em ambiente windows e linux.
  • Utilização do svn em linha de comando.
  • Utilização do svn na IDE Eclipse.

O que é SubVersion?

É um gerenciador de arquivos e diretórios, e as modificações feitas neles ao longo do tempo. Isto permite que você recupere versões antigas de seus dados, ou que examine o histórico de suas alterações.

O Subversion pode funcionar em rede, o que lhe possibilita ser usado por pessoas em diferentes computadores. Em certo nível, a capacidade de várias pessoas modificarem e gerenciarem o mesmo conjunto de dados de seus próprios locais é o que fomenta a colaboração. Progressos podem ocorrer muito mais rapidamente quando não há um gargalo único por onde todas as modificações devam acontecer. E como o trabalho está versionado, você não precisa ter medo de que seu trabalho perca qualidade por não ter essa via única para modificações—se os dados sofrerem alguma modificação
indevida, apenas desfaça tal modificação.

Alguns sistemas de controle de versão também são sistema de gerenciamento de configuração(GC). Estes sistemas são especificamente desenvolvimento para gerenciar árvores de código-fonte, e possuem muitos recursos específicos para o desenvolvimento de software, como identificação nativa de linguagens de programação, ou ferramentas de apoio para compilação de software. O Subversion, no entanto, não é um sistema desse tipo. É um sistema de caráter geral que pode ser usado para
gerenciar quaisquer conjuntos de arquivos. Para você, estes arquivos podem ser código-fonte—para outros, podem ser qualquer coisa desde listas de compras de supermercado a arquivos de edição de vídeo, etc.

Como Surgiu o SubVersion?

No começo do ano 2000, a CollabNet, Inc. (http://www.collab.net) começou a procurar desenvolvedores para desenvolver um substituto para o CVS. A CollabNet já tinha uma suite colaborativa chamada CollabNet Enterprise Edition (CEE) cujo um de seus componentes era o controle de versão. Apesar de o CEE usar o CVS como seu sistema de controle de versão inicial, as limitações do CVS ficaram evidentes desde o princípio, e a CollabNet sabia que eventualmente teria que procurar por algo melhor. Infelizmente, o CVS havia se firmado como um padrão de fact no mundo open source principalmente porque não havia nada melhor, pelo menos sob licença livre. Então a CollabNet decidiu desenvolver um novo sistema de controle de versão a partir do zero, mantendo as idéias básicas do CVS, mas sem os bugs e seus inconvenientes.

Em Fevereiro de 2000, eles contactaram Karl Fogel, o autor de Open Source Development with CVS (Coriolis, 1999), e perguntaram se ele gostaria de trabalhar neste novo projeto. Coincidentemente,no momento Karl já estava discutindo o projeto para um novo sistema de controle de versão com seu amigo Jim Blandy. Em 1995, os dois iniciaram a Cyclic Software, uma empresa que mantinha contratos de suporte para o CVS, e apesar de terem vendido a empresa posteriormente, eles ainda usavam o CVS todos os dias em seus trabalhos. Suas frustrações com o CVS levou Jim a pensar cuidadosamente sobre melhores maneiras para gerenciar dados versionados, no que ele não apenas já tinha pensado no nome “Subversion”, mas também com o projeto básico para armazenamento de dados do Subversion. Quando a CollabNet chamou, Karl concordou imediatamente em trabalhar no projeto, e Jim sugeriu à empresa em que trabalhava, Red Hat Software, essencialmente a cedê-lo para o projeto por um período de tempo indefinido. A CollabNet contratou Karl e Ben Collins-Sussman, e um projeto detalhado de trabalho começou em Maio. Com a ajuda e o bem-vindo incentivo de Brian Behlendorf e Jason Robbins da CollabNet, e de Greg Stein (à época, um desenvolvedor independente trabalhando no processo de especificação do WebDAV/DeltaV), o Subversion rapidamente atraiu uma comunidade ativa de desenvolvedores. Detectou-se que muitas pessoas também tinham as mesmas experiências frustrantes com o CVS, agora satisfeitas com a oportunidade de finalmente fazer algo sobre isso.

A equipe do projeto original determinou alguns objetivos simples. Eles não queriam romper com a metodologia existente para controle de versão, eles apenas queriam corrigir o CVS. Eles decidiram que o Subversion deveria ser compatível com as características do CVS, e manter o mesmo modelo de desenvolvimento, mas não reproduzir as falhas mais óbvias do CVS. E mesmo que o novo sistema não fosse um substituto definitivo para o CVS, ele deveria ser suficientemente semelhante a este para que qualquer usuário do CVS pudesse migrar de sistema com pouco esforço. Depois de quatorze meses de desenvolvimento, o Subversion tornou-se “auto-gerenciável” em 31 de Agosto de 2001. Ou seja, os desenvolvedores do Subversion pararam de usar o CVS para gerir seu próprio código-fonte, e começaram a usar o próprio Subversion no lugar. Embora a CollabNet tenha iniciado o projeto, e ainda patrocine uma grande parte dos trabalhos (ela paga os salários de alguns poucos desenvolvedores do Subversion em tempo integral), o Subversion é mantido como a maioria dos projetos open source, gerenciado por um conjunto de regras transparentes e de senso-comum, fundamentadas na meritocracia. A licença adotada pela CollabNet é perfeitamente compatível com Definição Debian de Software Livre (DFSG). Em outras palavras, qualquer pessoa é livre para baixar o código do Subversion, modificá-lo, e redistribuí-lo conforme lhe convier; não é necessário pedir permissão à CollabNet ou a quem quer que seja.

Caracteristicas:

O Subversion proporciona:
  • Histórico de versões efetivo
  • Commits atômicos
  • Versionamento de metadados
  • Escolha das camadas de rede
  • Manipulação consistente de dados
  • Ramificações e rotulagem eficiente
  • Hackability
Em breve estarei concluindo este post.. aguardem com calma!!!

2 comentários:

  1. Belo post cara isso me vai ser bem util!

    ResponderExcluir
  2. Bom blog. Parabens!!
    Assunto interessante!!!
    Se eu fosse teu professor ja dava 10

    ResponderExcluir