CVS - Qual a vantagem de troca-lo por outro?

Vou ser sincero que estou por fora de outros controladores de versões, pois trabalho a um ano e meio com CVS e sempre me agradou. Após ler alguns artigos de pessoas que estão migrando para o SVN e alguns posts da galera dizendo algo como “poxa, você ainda usa CVS”, lhes pergunto, o que há de errado no cvs que é melhor no svn ou ?

Obgd

edit: moderadores, sintam-se à vontade para mover o topico para o fórum: “ferramentas, frameworks e utilitários”

Cara, o único que funcionou comigo em windows foi svn, funciona perfeitamente.
Eu diria para vc testar e tenho quase certeza que vc vai trocar de repositório.

[quote=falefernando]Cara, o único que funcionou comigo em windows foi svn, funciona perfeitamente.
Eu diria para vc testar e tenho quase certeza que vc vai trocar de repositório.[/quote]

amigão, questão de funcionar o CVS tbm funciona, basta configura-lo corretamente. Quero saber dos pros x contras mesmo!! Valeu! :lol:

Já utilizei o VSS, que é horrivel, não recomendo…bem…é melhor do que nada…

Hoje utilizo o CVS e acho muito bom… não tenho a intenção troca-lo por outro, pois até o momento atende todas as necessidades de minha equipe.

Ps. nunca utilizei o SVN e não sei quais suas vantagens…

Nunca usei o CVS, fui direto pro SVN. Por isso não posso te dar um testemunho sobre qual o melhor.
Mas se você consultar a Wikipedia por exemplo, verá que vários desenvolvedores que trabalharam com o CVS hoje estão cuidando do SVN, que por sua vez foi concebido para substituir o CVS.

Acho que a diferença basica entre CVS e SVN é que o primeiro é nativo do Linux - e teoricamente funciona melhor se instalado em um servidor Linux - além do que o CVS funciona por commit em arquivo, no SVN você cria uma release nova toda vez que faz commit…

Agora, falando de controle de versão, alguém usa ou já usou o Clear Case da IBM?? estamos usando agora lá no trabalho, e também estamos detestando, pode até ser porque ainda não aprendemos a usar direito… :frowning:

Usamos o Clear Case na empresa onde trabalho. Não é ruim, porque ele faz tudo o que um sistema de gerenciamento de versão se propõe a fazer. Mas pessoalmente eu prefiro o SVN.

O Linus Torvalds deu uma palestra no Google falando sobre isso: Tech Talk: Linus Torvalds on git.

Aqui ele comenta o porque ele não gosta do CVS e das soluções que precisam de um servidor central.

peerless, talvez isso te ajude:

Em termos de funcionalidades, qualquer coisa é melhor que CVS. Veja no link a terceira tabela: o CVS é o que está mais vermelhinho… rs…

Agora tem uma coisa em que o CVS é imbatível: nenhum outro sistema possui um suporte tão bom e integrado c/ o Eclipse quanto o CVS (se vc usa Eclipse…), na minha opinião pessoal.

Git, Mercurial e esses outros sistemas recentes são fantásticos tecnicamente, mas ainda estão longe de ter suporte descente em IDEs (se vc considera isso um fator importante).

CVS é interessante se os arquivos não forem movidos de lugar. Se vc move, perdeu o histórico do arquivo.

Nesse ponto o Git e o Mercurial matam a pau.

[quote=peczenyj]CVS é interessante se os arquivos não forem movidos de lugar. Se vc move, perdeu o histórico do arquivo.

Nesse ponto o Git e o Mercurial matam a pau.[/quote]

Esqueceu do Bazaar, usado pelo pessoal da Canonical para manter o Ubuntu. E, que melhorou muito desde a avaliação feita pelo pessoal da Mozilla e do OpenSolaris.

Quanto a mover arquivos o Mercurial tem um comportamento meio estranho. Ele tem o mesmo mau hábito do CVS/SVN que é commitar um delete/add. Inclusive se você criar um outro arquivo com o mesmo nome no diretório original, este arquivo novo herda o histórico do arquivo movido.

Já tive experiência com o CVS e com SVN.
Não troco o CVS!

Mas ambos tem o mesmo problema que o amigo peczenyj citou! ao mover o arquivo, perde o histórico.

[quote=acdesouza]
Quanto a mover arquivos o Mercurial tem um comportamento meio estranho. Ele tem o mesmo mau hábito do CVS/SVN que é commitar um delete/add. Inclusive se você criar um outro arquivo com o mesmo nome no diretório original, este arquivo novo herda o histórico do arquivo movido.[/quote]

Não é bem assim. No CVS não tem jeito mesmo, porque ele não rastreia movimentação de arquivos.

No SVN, se vc for no filesystem e renomear ou mover o arquivo diretamente, o comprtamento é o mesmo do CVS: ele pensa que vc apagou o arquivo original e criou um novo com o mesmo conteúdo (delete/add). A maneira correta é realizar essas operações usando um comando do SVN: http://svnbook.red-bean.com/en/1.1/re18.html, assim ele não perde o histórico.

O Mercurial acho que é a mesma coisa. Já o Git é fantástico nesse ponto. Você não tem um comando especial p/ renomear/mover. Ele “sabe” sozinho que vc renomeou ou moveu um arquivo. É isso o que o Linus Torvalds quer dizer quando ele fala que o Git “rastreia conteúdo”.

Quando você apaga ou move um arquivo de pacote o CVS guarda uma espécie de backup numa pasta chamada Attic, mas acho que precisa configurar isso…

http://www.network-theory.co.uk/docs/cvsmanual/Attic.html

Resposta prápita para o CVS x SVN:

  • O CVS não tem um controle de versão completo. Tente renomear uma pasta qq com um histórico de alteração (ou pior, com branch) e veja só que melê …

  • O CVS faz um serviço bem porco com arquivos binários (se vc alterar um byte só do arquivo ele não poupa espaço).

Pra mim o item 1 já é suficiente pra abandonar o CVS. Tive a infelicidade de passar por um refactoring e qdo fui ver cadê o histórico?

Woody

Aqui no trabalho usamos CVS exclusivamente por causa da integração com o Eclipse.

O SVN também se integra ao Eclipse usando o subversion. Eu uso aqui no trabalho e acho muito bom.

Olhem com “carinho” para o Git.
A única deficiência é que o suporte para o Eclipse não existe. Mas acho que isto é questão de tempo.

Na empresa temos tanto CVS e Subversion. Hoje, por decisao de quem entende, devemos so usar o SVN. Vou ser bem sincero: acabo usando apenas os recursos que ja tinha do CVS usando o Subversion. Parte da culpa é a minha ignorancia. Parte da culpa é que nossos projetos nao sao aqueles que possuem milhares de branches, etc.

Mesmo essa critica em relacao ao CVS nao acompanhar os renames nao é la muito valida: quantas vezes voce realmente precisou do historico de uma arquivo recem renomeado? Mais ainda, a maioria absoluta dos pequenos projetos usam o CVS mais como repositorio, do que sistema de versionamento.

O git passa por um hype absurdo, o que me faz pensar em ter mais cautela em adota-lo.

[quote=Paulo Silveira]
git passa por um hype absurdo, o que me faz pensar em ter mais cautela em adota-lo.[/quote]

O Hype deve-se muito ao pessoal do RoR, que usa muito o Git. Porém o Git é anterior a tudo isso e foi desenvolvido inicialmente pelo Linux para atender as necessidades dos desenvolvedores do Kernel do Linux.

O legal dele é que é pssivel, dentre outras tantas coisas, ter um repositório local, só seu e sincroniza-lo com o SVN quando quiser.

Ele é excelente para quem não tem um SVN por não saber como configurar um servidor, ou por não ter como ter um mesmo. O Git não precisa de um servidor para funcionar.