Diferença entre CVS e Subversion

CVS vs. Subversion

O Concurrent Versions System (também conhecido como Concurrent Versioning System ou CVS) é um sistema de controle de revisão de software livre, ou seja, é um programa aberto para uso do público que gerencia alterações de documentos, programas e outras informações armazenadas no computador arquivos). Permite que vários desenvolvedores colaborem.

O Subversion (também conhecido como SVN) é um sistema de controle de versão usado para manter as versões atuais e anteriores dos arquivos (como código fonte, páginas da web e documentação). É uma atualização direta do CVS e seu sucessor mais compatível. É também uma tecnologia de código aberto e tem sido amplamente usada em vários projetos, como Apache Software Foundation, Free Pascal, MediaWiki e Google code.

O CVS usa a arquitetura do servidor cliente - isso significa que um servidor armazena uma versão atual (ou versões) de um projeto específico, além de salvar seu histórico. O cliente então se conecta ao servidor como meio de 'fazer check-out' de uma cópia do projeto que foi concluída antes de sua conexão com o servidor. O cliente é capaz de trabalhar nessa cópia do projeto e depois verificar as alterações que ele fez posteriormente. Além de permitir que um cliente faça check-in de uma cópia de um determinado projeto, o CVS permite que vários clientes trabalhem e façam check-in no mesmo projeto simultaneamente. Os clientes poderão modificar os arquivos em sua própria cópia de trabalho do projeto e enviar essas edições ao servidor.

O Subversion confirma - isto é, cria um conjunto de mudanças tentativas e as torna permanentes - como verdadeiras operações atômicas (ou uma série de operações de dados nas quais tudo ocorre ou nada ocorre). O Subversion também permite aos usuários renomear, copiar, mover e / ou remover arquivos; no entanto, esses arquivos manterão seu histórico de revisões completo. Esse sistema usa saída analisável, design nativo da biblioteca em camadas cliente / servidor e ramificação e marcação como operações baratas (independentemente do tamanho do arquivo). Existem ligações de linguagem para PHP, Python, Perl e Java. O Subversion também custa de acordo com o tamanho da mudança e não com o tamanho dos dados.

O CVS pode manter diferentes ramificações de um projeto - ou seja, diferentes aspectos ou permutações do mesmo projeto podem se ramificar do projeto de origem e o CVS manterá todas as versões (uma versão lançada do projeto forma uma ramificação para correções de erros, enquanto uma versão diferente que está sendo desenvolvida no momento pode conter novos recursos e grandes mudanças e formar uma ramificação do mesmo projeto, por exemplo).

Resumo:
1. O CVS permite que vários usuários colaborem no mesmo projeto; O Subversion mantém as versões atuais e anteriores dos arquivos.
2. O CVS permite aos usuários fazer check-in no mesmo projeto e modificá-lo; O Subversion confirma como verdadeiras operações atômicas.
3. O CVS pode manter diferentes ramos de um projeto; O Subversion usa saída analisável.