O Dave Dribin escreveu um bom artigo sobre DVCSs que nos dá um boa perspectiva sobre o que temos na mesa e o futuro dos sistemas de controle de versões. Este meu amigo, um eterno insatisfeito com estas coisas, vai adorar ler e opinar sobre isto, é certinho.
Já tinha visto o video do talk do Linus no Google sobre o GIT. Nem toda a gente precisa de algo tipo o GIT e ele exagera violentamente quando fala do CVS ou Subversion.
Cada macaco no seu galho como se costuma dizer. Há muita gente que não precisa de repositórios locais e sincronização entre repositórios. Para muita gente o Subversion é mais que suficiente ou mesmo o CVS. Claro que ambos têm as suas limitações mas depende mais das nossas necessidades do que outra coisa.
Bem, estando doente não sei quando vou falar sobre o artigo dele (nem do comentário do Nuno anterior ao meu ), mas acho que o Dribin ainda não viu a parte mais interessante, já que é um Subversion user.
O git-svn é a melhor maneira de trabalhar com SVN. É tão simples como isso.
A parte do Nuno: ninguém precisa da tool X ou Y para ser produtivo. Eu usei durante 2 ou 3 anos Subversion e achava que era muito fixe.
O que acontece é que tu cresces para além do que a tool te permite fazer. No caso do Subversion, o meu maior problema é branching and merging.
Todos os projectos são paralelos. Todos... Bugfixes que aparecem no meio de um desenvolvimento mais longo, pequenas experiências que podem ou não valer a pena, "campanhas de natal" temporárias que depois queres remover. Tudo isto são branches, e ser possível fazer merges entre eles facilmente é muito importante.
O próprio Dribin diz que "...it’s not something that bothers me." relativamente a branching and merging no final do parágrafo sobre Subversion. É aqui que está toda a definição das bases do artigo dele. Pessoas que não estão insatisfeitas com branch and mergeing em Subversion não vão poder dar grande valor aos Git/Mercurial da vida, porque é ai que esses se evidenciam.
Basicamente, para se conseguir dar valor a um DVCS tu tens de pensar na maneira como desenvolves software de uma forma diferente, de uma forma paralela. É possível usar um DVCS com o mesmo mind-set que tens quando usas SVN ou CVS, mas a melhoria é mínima.
Bem, de volta à cama, que isto de ter varicela não está com nada
O meu problema é só um. O investimento em tempo que tenho que fazer para mudar o mindset e tentar algo completamente diferente. De resto também não sou exigente, SVN works fine for me. A parte que ainda me atrai mais são os offline commits.
E tu doente. Tens tido umas ricas semanas, sim senhor.
Sem dúvida a mudança de mindset é tipicamente o maior entrave. No entanto tenho reparado que as pessoas assimilam melhor um DVCS explicando que:
- os developers "têm" um repositório próprio
- a quem faz a release, digo que o repositório dele é o "trunk" e quando tem de fazer uma release tem de fazer o merge dos repositórios dos developers
O resto fica para eles descobrirem. Também posso acrescentar que raramente ouvi queixas por terem de fazer merge dos repositórios dos colegas X ou Y para obterem novo código.
De qualquer das formas, se alguma vez fizerem um piloto, não te esqueças de escrever sobre os resultados
Celso, nesse novo post, a parte com que mais concordo:
Also, once I realized it was pretty easy to convert from one system to another, it made the choice a lot less permanent. If I decide to try Git or Bazaar in six months, I don’t think it’ll be much of an issue to convert the Mercurial repository.
Isto é algo que eu digo sempre a quem está indeciso entre os vários DVCS: escolham entre os top three à vontade, que é fácil de mudar entre eles..
Mas mais uma vez, o seu uso depende das necessidades de cada um ou de cada projecto. Há quem não tenha necessidades de branching ou offline commits.
Eu por exemplo, entre 99 e 2002 queixava-me do CVS por causa da necessidade de offline commits ou repositorios locais com sync. Hoje em dia não sinto necessidade.
Obviamente e como o Celso diz, tambem tudo tem a ver com investimento de tempo de aprendizagem também.
sem dúvida que cada qual deve usar a ferramenta de acordo com as suas necessidades. Espero não ter sugerido algo diferente de isso.
O que eu quero dizer é muito menos modesto . O meu ponto é que as tuas necessidades incluem desenvolvimento paralelo, e por isso o SVN não é a melhor solução.
Mas no final do dia, cada qual deve usar aquilo com que está confortável.
Cada macaco no seu galho como se costuma dizer. Há muita gente que não precisa de repositórios locais e sincronização entre repositórios. Para muita gente o Subversion é mais que suficiente ou mesmo o CVS. Claro que ambos têm as suas limitações mas depende mais das nossas necessidades do que outra coisa.
O artigo do Dribin tas nice though.
Sunday, December 30. 2007 at 00:52 (Link) (Reply)
O git-svn é a melhor maneira de trabalhar com SVN. É tão simples como isso.
A parte do Nuno: ninguém precisa da tool X ou Y para ser produtivo. Eu usei durante 2 ou 3 anos Subversion e achava que era muito fixe.
O que acontece é que tu cresces para além do que a tool te permite fazer. No caso do Subversion, o meu maior problema é branching and merging.
Todos os projectos são paralelos. Todos... Bugfixes que aparecem no meio de um desenvolvimento mais longo, pequenas experiências que podem ou não valer a pena, "campanhas de natal" temporárias que depois queres remover. Tudo isto são branches, e ser possível fazer merges entre eles facilmente é muito importante.
O próprio Dribin diz que "...it’s not something that bothers me." relativamente a branching and merging no final do parágrafo sobre Subversion. É aqui que está toda a definição das bases do artigo dele. Pessoas que não estão insatisfeitas com branch and mergeing em Subversion não vão poder dar grande valor aos Git/Mercurial da vida, porque é ai que esses se evidenciam.
Basicamente, para se conseguir dar valor a um DVCS tu tens de pensar na maneira como desenvolves software de uma forma diferente, de uma forma paralela. É possível usar um DVCS com o mesmo mind-set que tens quando usas SVN ou CVS, mas a melhoria é mínima.
Bem, de volta à cama, que isto de ter varicela não está com nada
Sunday, December 30. 2007 at 07:58 (Link) (Reply)
E tu doente. Tens tido umas ricas semanas, sim senhor.
Sunday, December 30. 2007 at 22:01 (Reply)
- os developers "têm" um repositório próprio
- a quem faz a release, digo que o repositório dele é o "trunk" e quando tem de fazer uma release tem de fazer o merge dos repositórios dos developers
O resto fica para eles descobrirem. Também posso acrescentar que raramente ouvi queixas por terem de fazer merge dos repositórios dos colegas X ou Y para obterem novo código.
De qualquer das formas, se alguma vez fizerem um piloto, não te esqueças de escrever sobre os resultados
Monday, December 31. 2007 at 02:35 (Link) (Reply)
O Delfim está a usar isso nos repo's @ work, e se quiseres posso fazer uma apresentação ai sobre apenas isso.
Inté,
Monday, December 31. 2007 at 08:41 (Link) (Reply)
http://www.dribin.org/dave/blog/archives/2007/12/30/why_mercurial/
Monday, December 31. 2007 at 00:02 (Reply)
Also, once I realized it was pretty easy to convert from one system to another, it made the choice a lot less permanent. If I decide to try Git or Bazaar in six months, I don’t think it’ll be much of an issue to convert the Mercurial repository.
Isto é algo que eu digo sempre a quem está indeciso entre os vários DVCS: escolham entre os top three à vontade, que é fácil de mudar entre eles..
Inté,
Monday, December 31. 2007 at 08:46 (Link) (Reply)
Mas mais uma vez, o seu uso depende das necessidades de cada um ou de cada projecto. Há quem não tenha necessidades de branching ou offline commits.
Eu por exemplo, entre 99 e 2002 queixava-me do CVS por causa da necessidade de offline commits ou repositorios locais com sync. Hoje em dia não sinto necessidade.
Obviamente e como o Celso diz, tambem tudo tem a ver com investimento de tempo de aprendizagem também.
Monday, December 31. 2007 at 01:41 (Link) (Reply)
sem dúvida que cada qual deve usar a ferramenta de acordo com as suas necessidades. Espero não ter sugerido algo diferente de isso.
O que eu quero dizer é muito menos modesto
Mas no final do dia, cada qual deve usar aquilo com que está confortável.
Inté,
Monday, December 31. 2007 at 08:44 (Link) (Reply)
Monday, December 31. 2007 at 03:13 (Link) (Reply)