Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

Este artigo aborda o uso do controle de versão no desenvolvimento de software. Além da conceituação pertinente a este processo, a utilização de uma ferramenta que subsidie esta atividade é apresentada. O Subversion, integrado ao NetBeans, propicia à equipe de desenvolvimento um ganho em produtividade, pois o desenvolvimento e o controle de versão ficam acessíveis em um único ambiente.


Para que serve:

Por mais que o controle de versões seja uma necessidade, muitos desenvolvedores desconhecem este recurso. Este artigo tem como objetivo demonstrar a simplicidade no uso de uma ferramenta para este fim, integrada a um ambiente de desenvolvimento.

Em que situação o tema é útil:

Controlar as alterações de um software não é uma tarefa simples, quer seja por um desenvolvedor independente, quer seja por pequenas equipes, ou, principalmente, quando se trabalha em equipes com muitos integrantes. Este processo se torna ainda mais complicado quando os mesmos não trabalham no mesmo local (prédio, cidade, país, etc.). Saber quem fez, quando fez e por que fez se torna bastante difícil quando não se usa uma ferramenta para controle de versão.

Resumo DevMan:

Esse artigo apresenta os conceitos relacionados às atividades de controle de versão e como um software específico para este fim se integra ao IDE NetBeans. Em seguida os comandos oferecidos pelo Subversion são apresentados de forma integrada ao NetBeans. São eles: Checkout (download do projeto), Atualizar (sincronizar os arquivos locais com a versão atual existente no servidor), Submeter (enviar os artefatos locais atualizados para o servidor), Comparar (verificar a diferença entre versões de um artefato), Exibir Alterações (histórico de revisões de um artefato), Resolver Conflitos (quando dois usuários alteram o mesmo artefato) e Reverter Modificações (desfazer algo feito localmente ou que já esteja no repositório). O artigo trabalha o conceito de cada comando, trazendo sempre uma aplicação prática para cada um deles. Esta aplicação demonstra os benefícios da integração do Subversion com o NetBeans, destacando os cuidados a serem tomados e as boas práticas de utilização.

O controle de versão de software é uma das características da Gerência de Configuração (GC). De acordo com o MPS.BR (Melhoria do Processo do Software Brasileiro), o propósito da GC é estabelecer e manter a integridade de todos os produtos de trabalho, de um processo ou projeto e disponibilizá-los a todos os envolvidos. A GC busca minimizar os problemas no processo de desenvolvimento de software como, por exemplo, a falta de rastreabilidade das alterações dos arquivos fontes, a perda (ou recuperação) dos mesmos em caso de exclusão local ou no repositório, e ainda o controle de alterações simultâneas nesses arquivos.

A GC define um item de configuração como um artefato a ser gerenciado por ele. Esses artefatos podem ser documentos de requisitos, código-fonte ou modelos de análise e projeto, dentre outros. O processo para o controle de versão é composto por um software instalado em uma máquina caracterizada como servidor e um aplicativo cliente no computador do programador para acessar os dados deste servidor. O servidor possibilita gerenciar uma estrutura de diretórios onde os artefatos estarão armazenados, mantendo, a partir da sua primeira versão, todas as demais de cada artefato. Este servidor permite que os usuários (programadores) possam fazer uma cópia do repositório para seu computador através de aplicativos clientes. Um aplicativo cliente é um software que tem por objetivo realizar a comunicação com o servidor, sendo ele o responsável por enviar os comandos para o servidor e processar as informações retornadas. Este processo possibilita a criação de novos artefatos ou a realização de alterações nos existentes, para posterior envio ao repositório (Figura 1).

Figura 1.Arquitetura do Controle de Versão.

O objetivo principal de um sistema para controle de versão é gerenciar diferentes versões de um documento qualquer (não apenas código fonte) durante o seu desenvolvimento, possibilitando a edição colaborativa e o compartilhamento de dados (SVNBook). Deste modo é possível armazenar, em um repositório, qualquer tipo de arquivo. Para esta atividade existem diversas ferramentas que atendem a esta demanda, entre elas:

Gratuitas: SVN (Subversion), CVS (Concurrent Version System), Mercurial e GIT (Global Information Tracker);

Comerciais: SourceSafe da Microsoft, ClearCase da IBM, entre outros.

De acordo com André Felipe Dias (ver Referências), os sistemas mais conhecidos e utilizados na maioria dos projetos de software livre são: CVS, utilizado durante muitos anos, porém, devido a algumas limitações tem sido substituído por outras ferramentas; e o Subversion, conhecido por SVN, tem sido o mais utilizado atualmente, pois atende de forma plena os comandos e recursos oferecidos pelo CVS, seu antecessor, cobrindo inclusive as antigas limitações deste.

...
Quer ler esse conteúdo completo? Tenha acesso completo