CVS Nota: Para Computer Vision Syndrome, veja Síndrome da visão de computador.
O CVS, ou Concurrent Version System (Sistema de Versões Concorrentes) é um sistema de controle de versão que 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 colaborativa de um documento. A exemplo de outros softwares usados neste projeto, o CVS pode ser baixado gratuitamente e tem o seu código aberto. FuncionamentoCVS 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 do projeto, 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 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 da alteração for bem sucedida, o número de versão de cada cliente arquivo 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 diferentes 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 específica, 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 necessidade de autenticação; somente para salvar mudanças é necessário informar a senha nesses casos. 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. TerminologiaA terminologia do CVS considera um projeto (conjunto de arquivos relacionados) gerenciados pelo CVS como um módulo, que consiste em uma hierarquia de diretórios contendo os arquivos do projeto. Um servidor CVS pode gerenciar diversos módulos; ele armazena todos os módulos administrados por ele em seu repositório. A cópia do módulo que foi baixada para um cliente é chamada cópia de trabalho (ou checkout). Abaixo, estão listados alguns termos em inglês, que fazem parte da terminologia CVS, e seu significado:
História e EstadoO CVS foi desenvolvido de uma versão anterior de um sistema chamado Revision Control System (RCS), ainda em uso, que gerencia versões de um único arquivo, mas não de projetos inteiros. Dick Grune escreveu algumas breves notas históricas sobre o CVS em seu sítio. Citando-o:
O código foi lançado publicamente ao mod.sources em 23 de junho de 1986. Ainda se pode ver a mensagem original em grupos do Google. O código que evoluiu para a versão atual do CVS foi iniciada por Brian Berliner em abril de 1989, com posterior contribuição de Jeff Polk e muitos outros contribuidores. Brian Berliner escreveu um artigo apresentando suas contribuições para o CVS, que descreve como a ferramenta foi estendida e usada internamente pelo Prisma, uma equipe de desenvolvimento que trabalhava no núcleo do SunOS, e foi lançada em benefício da comunidade sob a GPL. Atualmente, o código do CVS é mantido por um grupo de voluntários. O relacionamento entre o CVS e o projeto GNU pode parecer de certa forma ambígua: o sítio do GNU distribui o programa, chamando-o de "pacote GNU", em uma página, e de "projeto licenciado pela GPL" em outra. No repositório FTP, o programa fica no diretório Limitações
Alguns dos principais desenvolvedores que trabalharam no CVS são atualmente responsáveis pelo Subversion (SVN)[carece de fontes], lançado no começo de 2004 e cujo objetivo é substituir o CVS ao lidar com algumas de suas limitações. Ver tambémLigações externas
|