3.2.3 CVS (Concurrent Version System)


Concurrent Versions System (CVS) por muitos anos foi a ferramenta escolhida para controle de versão, sua forma de trabalho não-restritiva e o suporte a operações de rede permitiram que diversos desenvolvedores espalhados pelo mundo trabalhassem de forma colaborativa. Essa é a maior característica do mundo open-source como um todo.

 

O Software permite que se trabalhe com diversas versões de arquivos organizados em um diretório e localizados local ou remotamente, mantendo-se suas versões antigas e os logs de quem e quando manipulou os arquivos.

 

É especialmente útil para se controlar versões de um software durante seu desenvolvimento, ou para composição de um documento.

 

Pressman (2006, p. 609) destaca que “(CVS) é uma ferramenta amplamente usada para controle de versão. Originalmente projetada para controle do código, mas útil para qualquer arquivo baseado em texto [...]”.

 

 

3.2.3.1 Funcionalidades

 

Rastreia o histórico de arquivos individuais, CVS utiliza uma arquitetura cliente-servidor: um servidor armazena a(s) versão(ões) atuais do projeto e seu histórico, e os clientes se conectam a esse servidor para obter uma cópia completa, trabalhar nessa cópia e então devolver suas modificações. Tipicamente, cliente e servidor devem estar conectados por uma rede local de computadores, ou pela internet, mas o cliente e o servidor podem estar na mesma máquina se a configuração do CVS for feita de maneira a dar acesso a versões e histórico do projeto apenas a usuários locais. O servidor geralmente roda sistema ao estilo Unix, enquanto o cliente CVS pode rodar em qualquer sistema operacional.

 

Vários clientes podem editar cópias do mesmo projeto de maneira concorrente. Quando eles confirmam suas alterações, o servidor tenta fazer uma fusão delas. Se isso não for possível, por exemplo porque mais de um cliente tentou executar alterações na mesma linha do documento, o servidor apenas executa a primeira alteração e informa ao responsável pela segunda alteração que houve conflito, e que é necessário uma intervenção humana. Se a validação alterada for bem sucedida, o número de versão de cada cliente envolvido é incrementado, e o servidor CVS escreve uma linha de observação (fornecida pelo usuário), a data e o autor das alterações em seus arquivos de log.

 

Clientes podem comparar diferente versões de um arquivo, pedir um histórico completo das alterações, ou baixar uma determinada versão do projeto, ou de uma data especifica, não necessariamente a versão mais atual, muitos projetos de código aberto permitem acesso para leitura anônimo, o que significa que qualquer pessoa pode baixar ou comparar versões sem a necessidade de autenticação, somente para salvar mudanças é necessário informar a senha.

 

Clientes também podem usar o comando "update" para manter suas cópias locais atualizadas com a última versão do servidor. Isso elimina a necessidade de se fazer diversos downloads de todo o projeto.

 

O CVS também pode manter diferentes "estados" do projeto. Por exemplo, uma versão do software pode ser um desses estados, usado para correção de bugs, enquanto outra versão, que está realmente sob desenvolvimento, sofrendo alterações e tendo novas funcionalidades implementadas, forma o outro estado.

 

O CVS usa compressão delta para armazenar de maneira eficiente diferentes versões de um mesmo arquivo.

 

Comments