Uma das razões pelas quais os programadores preferem o SVN ao CVS é que o primeiro permite confirmações atômicas? O que isto significa ?
svn
versioning
cvs
Nerd
fonte
fonte
Respostas:
Isso significa que, quando você faz uma confirmação no sistema de controle de versão, tudo o que você deseja confirmar entra, ou nada acontece.
No CVS, quando você tenta confirmar, é possível que o commit seja bem-sucedido em vários arquivos e falhe em vários outros (porque eles foram alterados). Isso deixa o repositório em um estado lamentável, porque metade do seu commit não está lá, e é provável que você tenha deixado as coisas em um estado em que elas não serão compiladas ou pior. Agora você precisa se apressar e integrar as alterações para poder confirmar os outros arquivos antes que alguém precise atualizar e obter o conjunto de alterações quebrado.
No SVN, isso não acontecerá - o SVN confirmará tudo o que você mudou ou falhará em todo o conjunto de alterações. Portanto, você nunca deixará o repositório em um estado interrompido devido a problemas de confirmação.
fonte
Isso é explicado, por exemplo, no Bye-bye CVS. Fui artigo subvertido escrito por Andy Lester :
O fato de o CVS forçar o programador a corrigir a mesclagem imediatamente é tão contraproducente quanto possível. Comparado a isso, uma opção para atrasar / cancelar / mesclar cuidadosamente as alterações é um benefício substancial.
Outros benefícios do SVN sobre o CVS explicados no artigo acima são:
fonte
Isso significa que todas as alterações em todos os arquivos são confirmadas em uma única transação; portanto, todas são bem-sucedidas ou nenhuma.
Isso significa que é menos provável que você faça edições parciais no repositório, causando falhas nas construções. Você ainda pode fazer com que as pessoas se esqueçam de fazer o check-in de todos os arquivos relevantes, mas isso é um problema de processo, e não um problema com o sistema de versão.
fonte