Concurrent Version System (CVS)


CVS é o avô dos sistemas de controle de versão. Foi lançado pela primeira vez em 1986 e o Google Code ainda hospeda a publicação original do Usenet anunciando o CVS. A curva de aprendizado não é muito íngreme para o CVS, e é um sistema muito simples para garantir que os arquivos e revisões sejam mantidos atualizados. Embora o CVS possa ser uma tecnologia mais antiga, ainda poder ser útil para qualquer designer ou desenvolvedor para fazer backup e compartilhar arquivos.

Tortoise CVS é um ótimo cliente para CVS no Windows, e há muitas IDEs diferentes, como Xcode (Mac), Eclipse, NetBeans e Emacs, que usam o CVS.

O CVS tornou-se popular com o mundo do software de código aberto e foi lançado sob a GNU General Public License. Embora houvesse um desenvolvimento regular para adicionar recursos e corrigir erros no passado, incluindo compilações regulares e resultados de testes, não houve novos lançamentos desde 2008.

O CVS usa uma arquitetura cliente-servidor: um servidor armazena a (s) versão (s) atual (is) de um projeto e seu histórico e os clientes se conectam ao servidor para "verificar" uma cópia completa do projeto, trabalhar nesta cópia e depois mais tarde, "acesse" suas mudanças. Normalmente, o cliente e o servidor se conectam por meio de uma LAN ou através da Internet, mas o cliente e o servidor podem ser executados na mesma máquina se o CVS tiver a tarefa de acompanhar o histórico de versões de um projeto com apenas desenvolvedores locais.

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.

Limitações

Os arquivos em um repositório CVS não podem ser renomeados a partir do cliente, eles devem ser explicitamente removidos e redirecionados. Entretanto, com acesso ao servidor os arquivos podem ser renomeados. No servidor, cada arquivo na estrutura de diretório do cliente possui um equivalente seguido de ,v. Exemplo: o arquivo index.html no cliente é gravado no servidor como index.html,v. A ação de renomear no servidor gera no cliente um processo de exclusão do arquivo antigo e criação de um novo e o histórico de atualizações é mantido.

O protocolo do CVS não permite que os diretórios sejam movidos ou renomeados. Cada arquivo do subdiretório em questão deve ser individualmente removido e redirecionado.

Não permite "checkout" reservados (permite que dois usuários alterem o mesmo arquivo ao mesmo tempo) e em alguns casos pode ser mais custoso resolver o conflito do que evitar que ele ocorra.





Comentários

Postagens mais visitadas deste blog

Plano de Projeto de Software do SIUR

Vocabulário comum entre os Sistemas de Controle de Versão

Git