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:
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…
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.
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).
[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.
[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”.
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.