Como Funciona
O CVS funciona a partir da arquitetura cliente-servidor. Nesta arquitetura, um servidor armazena as versões do projeto e os usuários envolvidos se conectam ao servidor para acessar, fazer cópia e atualizar o projeto, neste caso, se comportando como clientes. Cliente e servidor podem se conectar através de uma rede local ou Internet. É também possível que cliente e servidor estejam na mesma máquina, caso a configuração do CVS seja feita de maneira a dar acesso a versões e histórico do projeto apenas a usuários locais. Um servidor CVS deve estar em um Sistema Operacional Unix (ou Linux), no entanto não há restrições para o cliente.
Os projetos gerenciados pelo CVS são chamados de módulos. Os módulos são acessados e modificados de maneira concorrente por um grupo de usuários que trabalham em equipe. Quando alterações são feitas e confirmadas - através do comando commit - o servidor ao ser atualizado - com o comando update - faz uma mescla do projeto atual com o que há de novo. A mescla é feita através do merge. No entanto, se houver conflito entre arquivos modificados - quando há, por exemplo, modificações diferentes feitas na mesma região de um arquivo - o merge é abortado e o servidor avisa que existe algum conflito e que é necessário uma intervenção humana. Caso contrário, a versão é incrementada e o servidor CVS escreve uma linha de observação com data e o autor das alterações em seus arquivos de log - além de observações informadas pelo próprio usuário, quando houver.
Entre as funcionalidades disponíveis aos usuários clientes estão a capacidade de comparar diferentes versões de um arquivo, pedir um histórico completo das alterações ou baixar uma determinada versão do projeto - a partir de uma data ou de uma das alterações no histórico, por exemplo. Para manter suas cópias locais atualizadas com a última versão do servidor os clientes utilizam o comando update.
No repositório existem 3 tipos de diretório: trunk, branches e tags. O trunk mantém o fluxo principal de desenvolvimento. Já o branches mantém os fluxos alternativos de desenvolvimento, como novas ramificações a partir de uma determinada versão. Por último, em tags ficam registradas revisões que não podem mais serem alteradas, ou seja, versões estáveis do projeto.
Limitações
As maiores limitações do CVS estão relacionadas a impossibilidade de mover e renomear arquivos sem perder sua referência e seu histórico de alterações. Quando necessário renomear um arquivo, este deve ser explicitamente removido e novamente adicionado com seu novo nome. Para mover ou renomear diretórios são enfrentados os mesmos problemas, dessa forma, cada arquivo do subdiretório em questão deve ser individualmente removido e readicionado.
O Apache Subversion (SVN), criado como substituto do CVS, corrige essas falhas.
Referências
http://www.embarcados.com.br/controle-de-versoes-parte-ii-cvssvn/
http://www.devmedia.com.br/cvs-instalacao-e-configuracao/2801
http://pt.wikipedia.org/wiki/CVS
Nenhum comentário:
Postar um comentário