Conheça o CVS: Mais controle no desenvolvimento em equipe

Quem nunca utilizou o CVS, ou um softwa­re similar, não sabe o que está perdendo.

Esse artigo faz parte da revista Java Magazine edição 08. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

Conheça o CVS

Mais controle no desenvolvimento em equipe

  O CVS – Concurrent Versions System – não é escrito em Java, mesmo assim ocupa posição de destaque em nos­sa comunidade. Um software de controle de versões é um componente obrigatório para qualquer projeto de desenvolvimento sério. Quem nunca utilizou o CVS, ou um softwa­re similar, não sabe o que está perdendo.

 

IDEs livres, como o Eclipse e o NetBeans – além de várias ferramentas proprietárias, como o JBuilder e o IDEA – fornecem inte­gração nativa com o CVS. Grandes projetos livres, tais como o próprio Eclipse, JBoss, Tomcat, Apache Httpd, Gnome e MySQL, são baseados na infra-estrutura fornecida pelo CVS, da mesma forma que as maiores incubadoras de software livre: SourceForge, Tigris e Savannah.

 

A finalidade de um sistema de controle de versões é gerenciar o repositório de código de um projeto de software, fornecendo con­trole, por exemplo, sobre qual desenvolve­dor está trabalhando em que módulo, qual o histórico de mudanças para cada módulo, e possibilitando a integração automatizada das modificações realizadas por diferentes desenvolvedores sobre o mesmo módulo.

 

Em suma, sistemas de controle de versões eliminam o velho problema de um progra­mador sobrescrever o mesmo arquivo-fonte que havia sido editado por outro, levando à perda das modificações realizadas pelo segundo. Esses sistemas também permi­tem aos programadores maior liberdade de experimentar novos algoritmos e novas arquiteturas, testar estratégias radicais para a solução de um problema, ou in­cluir novas funcionalidades – pois caso a linha de trabalho escolhida se mostre um “beco sem saída”, basta pe­dir ao sistema para que retorne o projeto a uma situação anterior, estável.

 

O CVS, como indicado, não é o único software nesta área. Entre os projetos livres, temos, por exemplo, o Subversion; entre os proprietários existem o ClearCase da IBM/Rational, PVCS da Merant, Visual Source­Safe da Microsoft e StarTeam da Borland.

 

A maioria das ferramentas de desenvolvi­mento Java posicionadas como “enterprise” inclui um sistema de controle de versões em­butido, ou possui recursos para integração com sistemas de terceiros. Mas, da mesma forma que vem acontecendo em outras áreas, o software livre tem se mostrado de tanta qualidade, que vem levando empresas tradicionais a descontinuarem seus produ­tos concorrentes.

 

Certamente, o leitor gostará de saber que o CVS, embora não escrito em Java, é multiplataforma. Há servidores para todos os sistemas Unix do mercado (Linux, AIX, Solaris etc.) e para Windows, e há clientes para praticamente todas as plataformas co­nhecidas (além de alguns 100% Java).

Controle de versões para a internet

O CVS segue alguns princípios bastante diferentes de outros softwares similares. Por exemplo, ele não requer que sejam es­tabelecidas travas (locks) sobre os módulos sendo modificados. Vários desenvolvedores podem trabalhar simultaneamente no mes­mo módulo – o CVS cuida de integrar as modificações ou de indicar onde as modi­ficações entram em conflito.

 

Dessa forma, é viabilizado o estilo de de­senvolvimento altamente descentralizado utilizado por grandes projetos de software livre ou em grandes sistemas corporativos, onde desenvolvedores podem estar em di­ferentes continentes. O histórico mantido pelo CVS garante que seja possível revisar (e reverter, se for o caso) qualquer mudança. Pode-se, ainda, restringir, a grupos especí­ficos, os direitos de registrar mudanças em certos módulos. Portanto, o CVS mantém o controle gerencial sobre um projeto de software.

 

Por outro lado, caso houvesse necessidade de comunicação constante entre os mem­bros da equipe para obter acesso a travas, seria inviável a participação de desenvol­vedores independentes, cada um no seu próprio ritmo.

 

É possível também ter desenvolvedores que trabalham desconectados do CVS. Eles modificam uma “fotografia” (snapshot) do repositório para depois gerar um patch contendo as modificações realizadas. Este é enviado para um desenvolvedor com acesso ao CVS, que faz uma avaliação e decide in­corporar ou não as modificações. É assim, por exemplo, que projetos de software livre aceitam colaboradores ocasionais." [...] continue lendo...

Artigos relacionados