Disputa de Beleza: Git versus os outros
“Na arena dos software de controle de versão distribuídos, o Git, inventado pelo mesmo criador do Linux, tem despontado e ganhado visibilidade nos últimos tempos. Isso tem sucitado diversas manifestações pró e contra o Git, vindos de empresas que lucram com ele mas também dasque perdem. É interessante, no entanto, que reside na simplicidade do Git sua aceitação e alcance atual: basta um rsync apra criar um repositório! E os leitores do BR-Linux? O que acham disso? Qual controle de versão têm utilizado?”
Enviado por Ana Paula Felzmann (apf1979Θgmail·com) – referência (whygitisbetterthanx.com).
Atualmente uso o svn, tem me atendido sem problemas mas ainda não tive a oportunidade de testá-lo em uma equipe grande para ver seu comportamento.
O maior código que tenho usado no SVN é o próprio Linux Kernel, exige muito da rede.
Uso a interface KDESVN.
Mas tenho vontade de aprender mais sobre o Git e talvez vir a utilizá-lo devido aos comentários positivos que tenho lido sobre ele, além de ser simples é rápido.
Eu uso o Mercurial. :)
http://www.selenic.com/mercurial/wiki/
(o pessoal esta preparando um site novo, com um visual legal, mas o conteudo ainda é mock..)
Deixa eu aproveitar e mostrar 2 links de um site que eu acho muito legal:
http://betterexplained.com/articles/a-visual-guide-to-version-control/
e
http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/
Neste último é usado o Mercurial como exemplo, mas o conceito é o mesmo para outros sistema de controle de verão distruibuidos.
Escolhi o Mercurial pois:
- Achei mais fácil de usar do que o GIT;
- TortoiseHg. Fundamental para diminuir a resistência dos colegas de trabalho windozados. (na época que escolhi ainda não tinha o TortoiseGIT);
O GIT é bom, mas o usuário precisa entender o funcionamento interno bem.
O Mercurial também tem suas falhas, não consegui usar ele com arquivos maiores do que 10 MB (arquivos xml, hg versão 1.0.1-5.1, Ubuntu 8.10). Ele também não é tão fácil quanto o bazaar.
A escolha de um DRCS depende muito do ambiente. No meu está sendo difícil até mesmo fazer a equipe largar o SVN.
Está quase que virando VI vs Emacs.
Aprendi a usar o SVN estes dias para coisas minhas, principalmente para gerenciar documentos, pequenos códigos, etc (parar com aquela coisa de ficar fazendo backups com nomes do tipo arquivo.antes-da-cagada-20090201… :-)
Uso só o basico (update, commit, add, delete, mv, ls, create, etc) e hospedo no servidor do facul e acesso via ssh (svn+ssh://). Aliás, tem como acessar via ssh com git?
Tem :)
Com GIT, Mercurial, Bazaar, Darcs… acho que todos.
Só tem que instalar o GIT no PATH da facul. No server da minha facul instalei o bazaar no meu home e adicionei o PATH no .bashrc
O GIT (ou outro DRCS) também é maneiro de ser usado no pendrive para transportar projetos feitos na faculdade e em casa.
O GIT é monstro em se tratando de recusos e metodologia de trabalho, pois diferente dos outros SCMs, no GIT cada desenvolvedor pode fazer um commit paralelo ao outro desenvoledor sob o mesmo pacote, neste caso evitando conflitos em relação a algum arquivo alterado duas vezes ao mesmo tempo.
O GIT envia email sobre as mudanças no projeto, cria repositório padronizado, permite fazer commit offline, ele é quase um Maven em recursos.
SVN para projetos compartilhados com outras pessoas.
Git para projetos onde somente eu tenho acesso.
:-) Existem várias coisas formidáveis que o Linus e a comunidade de desenvolvedores do Git mandaram bem ao confeccionar o Git. A criação de branches é extremamente rápido, o git-rebase para juntar/separar os commits que já foram “commitados”, o git-add -i em que possibilita o desenvolvedor enviar apenas os hunks que quiserem de um arquivo que possui alterações em diferentes partes no arquivo, a agilidade de ficar pulando de um branch para outro, o git-stash que cria um garbage temporário e o que acho mais fantástico e que já foi mencionado pelos amigos acima: é o versionamento local antes fazer um git-push para o servidor. :) Git destroi…! :-)
Rafael… Mas não é exatamente em projetos com múltiplas pessoas contribuindo que o Git é melhor que todos os outros?
“…, no GIT cada desenvolvedor pode fazer um commit paralelo ao outro desenvoledor sob o mesmo pacote, neste caso evitando conflitos em relação a algum arquivo alterado duas vezes ao mesmo tempo.
O GIT envia email sobre as mudanças no projeto, cria repositório padronizado, permite fazer commit offline…”
O svn faz tudo isso também.
Para controle de versões distribuído, prefiro o Mercurial ou o Bazaar. Não gostei muito do git não (achei complicado).
Mas ainda uso bastante o SVN, e acho que controle de versão centralizado, dependendo do projeto, ainda tem suas vantagens.
Não sei, eu fui administrador ClearCase por 7 anos .. claro, jamais pensei em utilizá-lo pra projetos pessoais. Primeiro porque é pago (e BEM caro hehe), depois porque é uma bazuca pra matar um mosquito …
já usei CVS, SVN, um mod do svn pra desenvolvimento descentralizado, o SVK ..
até que vieram GIT e os outros … tentei a documentação do GIT, mas sou preguiçoso, e achei confusa a documentação … tentei mercurial também, mas quem foi mais curto e direto foi o bazaar. Fácil de instalar, de usar, e o “bazaar in 5 minutes” tinha o que eu precisava pra usá-lo, inclusive fazendo push e pull para/de um servidor html/sftp. Resolveu meu problema!