Quais são as vantagens de usar SVN sobre CVS?

votos
56

Minha empresa está usando CVS como nosso padrão de-facto para controle de origem. No entanto, eu ouvi um monte de gente dizer que o SVN é melhor.

Eu sei SVN é mais recente, mas diferente do que, eu estou familiarizado com os seus benefícios.

O que eu estou procurando é uma boa comparação, sucinta dos dois sistemas, notando quaisquer vantagens ou desvantagens de cada um em um ambiente de desenvolvimento Java / Eclipse.

Publicado 04/08/2008 em 15:06
fonte usuário
Em outras línguas...                            


12 respostas

votos
54

CVS apenas as faixas de modificação em uma base arquivo por arquivo, enquanto SVN rastreia um todo cometer como nova revisão, o que significa que é mais fácil seguir a história do seu projeto. Adicione o fato de que todo o software de controle de origem moderna utilizam o conceito de revisão por isso, é muito mais fácil de migrar do SVN do que é a partir do CVS.

Há também a submissão atómica problema. Enquanto eu só encontrei uma vez, é possível que 2 pessoas que cometem juntos em CVS pode entrar em conflito entre si, perdendo alguns dados e colocar o cliente em um estado inconsistente. Quando detectado precocemente, estes problemas não são importantes porque os dados ainda está lá fora em algum lugar, mas pode ser uma dor em um ambiente estressante.

E, finalmente, não muitas ferramentas são desenvolvidas em torno CVS mais. Enquanto os novos e brilhante-novas ferramentas como Git ou Mercurial definitivamente não têm ferramentas ainda, SVN tem um muito grande base de aplicação em qualquer sistema.

EDIT 2015 : Sério, essa resposta é de 7 anos de idade agora. Esqueça SVN, vai usar o Git como todos os outros!

Respondeu 04/08/2008 em 15:17
fonte usuário

votos
18

Uma das muitas comparações:

http://wiki.scummvm.org/index.php/CVS_vs_SVN

Agora isso é muito específico para esse projeto, mas um monte de coisas vigorará em geral.

Pro Subversion:

  • Suporte para controle de versão renomeia / move (impossível com CVS): Fingolfin, Ender
  • Suporta diretórios nativamente: É possível removê-los, e eles são versionadas: Fingolfin, Ender
  • As propriedades do arquivo são versionadas; não mais "bit executável" inferno: Fingolfin
  • número global de revisão faz versionamento de construção e testes de regressão muito mais fácil: Ender, Fingolfin
  • Atomic compromete: Fingolfin
  • Intuitiva (diretório-base) a ramificação e marcação: Fingolfin
  • scripts de gancho mais fácil (pré / pós cometer, etc): SumthinWicked (I usá-lo para Doxygen após commits)
  • Impede cometer acidental de arquivos em conflito: Salty-cavalo, Fingolfin
  • Suporte para comando personalizado 'diff': Fingolfin
  • diffs off-line, e eles são instantânea: sev
Respondeu 04/08/2008 em 15:09
fonte usuário

votos
14

SVN tem 3 vantagens principais sobre CVS

  • é mais rápido
  • suporta versões de arquivos binários
  • e acrescenta transacional commit (tudo ou nada)
Respondeu 04/08/2008 em 15:35
fonte usuário

votos
7

O livro Subversion tem um apêndice que detalha importantes diferenças de CVS, que podem ajudá-lo a fazer a sua decisão. As duas abordagens são mais ou menos a mesma idéia, mas SVN foi especificamente concebido para corrigir falhas de longa data no CVS assim, pelo menos em teoria, SVN será sempre a melhor escolha.

Respondeu 04/08/2008 em 15:14
fonte usuário

votos
4

Uma coisa não esquecer é ecossistema. Eu estava trabalhando em uma loja de CVSNT, e eu estava achando ferramentas mais e mais aberto fonte do Subversion suportados por padrão.

Respondeu 18/08/2008 em 18:22
fonte usuário

votos
2

Como alguém que está no meio de alternar entre CVS e SVN (inicialmente nós mudamos todos os nossos projetos com cvs2svn e, em seguida, decidimos que a transição usando apenas svn em novos projetos), aqui estão alguns dos problemas que tivemos.

  • Mesclando e ramificação são muito diferentes, e se você ramificar e mesclar com freqüência, a menos que tenha SVN 1.5 rodando em seu servidor tem que saber quando você ramificada (isto não é muito clara nos diálogos Tortoise SVN). Michael diz que a ramificação e mesclagem é intuitivo, eu diria que depois de usar CVS de 10 anos, não é.
  • Se você está executando o servidor SVN no Linux, pode ser difícil obter o seu SA para mover para SVN 1.5, como a instalação padrão 1.4.x.
  • Mesclando conflitos não é tão fácil ou tão clara (pelo menos para mim e meus colegas de trabalho) em TortoiseSVN como no TortoiseCVS. A abordagem de três painel leva algum tempo para se acostumar e não o WinMerge (minha ferramenta de mesclagem preferencial) não fazer uma mesclagem painel de três.
  • Cuidado: muitos dos tutoriais on-line e artigos de revistas que li, obviamente, não ramificar e mesclar, você deve configurar seu repositório principal como https://svn.yoursvnserver.com/repos/YourProject/Trunk e filiais em https: / /svn.yoursvnserver.com/repos/YourProject/Branches/BranchX . Você pode limpar Se você iniciar sua repos no lugar errado, mas leva a confusão.
Respondeu 04/09/2008 em 18:44
fonte usuário

votos
2

Eu vou segunda sugestão do Git Eridius', mas eu expandi-lo para outros DRCS (Distributed Control System Revisão), tais como Mercurial e bazar .

Estes produtos são bastante recentes e o nível de ferramentas e integração com eles parece baixo no momento (com base na minha pesquisa inicial). Eu diria que eles eram os mais adequados para os power-desenvolvedores lá fora (e aqui ;-)).

Por outro lado, o que não CVS atualmente fazer por você? Da sua pergunta inicial, você realmente não tem qualquer "CVS suga a isso, o que eu poderia usar em vez disso?"

Você tem que pesar os custos de qualquer migração potencial contra os benefícios. Para um projeto existente, eu acho que seria difícil de justificar.

Respondeu 18/08/2008 em 18:04
fonte usuário

votos
1

CVS (Concurrent Versions System) e SVN (Subversion) são dois sistemas de arquivos de controle de versão que são popularmente utilizados por equipes que estão colaborando em um único projeto. Estes sistemas permitem que os colaboradores se manter a par das alterações que são feitas e saber quem está desenvolvendo o que e se um ramo deve ser aplicada ao tronco principal ou não. CVS é ​​o muito mais velho dos dois e tem sido a ferramenta de colaboração padrão para um monte de gente. SVN é muito mais recente e introduz uma série de melhorias para lidar com as demandas da maioria das pessoas.

Respondeu 17/07/2018 em 07:19
fonte usuário

votos
1

btw: CVSNT suporta commits atômicas

Respondeu 18/08/2008 em 17:22
fonte usuário

votos
0

Bem, algumas coisas que eu sinto que faz svn incrível.

  1. A combinação cadinho SVN-Altassian é um método muito superior de comentários e controlos de qualidade
  2. Uma melhor gestão dos conflitos e fusões
  3. É óbvio que é mais rápido para tomar checkouts, realizando commits, etc.
  4. A submissão atómica problema - É possível que 2 pessoas que cometem juntos em CVS pode entrar em conflito entre si, perdendo alguns dados e colocando sua base de código em um estado inconsistente

A migração pode ser feito facilmente em algumas horas usando cvs2svn.

Respondeu 18/09/2016 em 14:01
fonte usuário

votos
0

você também pode optar por migrar apenas o código mais recente do CVS para SVN e congelar o seu actual repo CVS. isto irá tornar a migração mais fácil e você também pode construir seus lançamentos legados no antigo repo CVS.

Respondeu 08/10/2008 em 17:19
fonte usuário

votos
0

Você deve dar uma olhada em Git ao invés de SVN. É um DVCS que é super rápido e muito poderoso. Não é tão fácil de usar como SVN, mas está melhorando a este respeito, e não é que difícil de aprender.

Respondeu 07/08/2008 em 00:09
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more