sábado, 17 de julho de 2010

O que você precisa saber sobre controle de versão distribuído antes de mudar

Você que usa um controle de versão centralizado, exemplos:
  • CVS
  • SVN Subversion
  • VSS Microsoft Visual Source Safe
  • TFS Microsoft Team Foundation Server
nunca usou um DVCS (Distributed Version Control System), exemplos:
  • GIT, desenvolvido por Linus Torvalds e usado pelo time Linux Kernel
  • Mercurial (Hg), para o qual foram desenvolvidas ótimas ferramentas gráficas e é suportado pelo Google Code Project Hosting
  • Bazaar
  • Darcs
 e pretende conhecer essa tecnologia, precisa saber dos seguintes fatos sobre o DVCS:
  • o repositório é descentralizado, mas isso não impede de ter também um repositório central
  • o repositório é descentralizado, e isso significa que você pode ter acesso a versões específicas da máquina de um dos desenvolvedores, que não serão publicadas para os demais
  • o repositório é sempre local, isso significa que atualizações, reversões e comparações serão sensivelmente mais rápidas, pois não se comunicarão com um repositório remoto
  • embora a primeira vez que você clona um repositório pode ser até 50% mais lento, as operações seguintes são mais rápidas
  • é mais complexo, pois a recepção é dividida em duas etapas: a sincronização com um repositório remoto (pull) e a atualização da versão a ser editada (update)
  • é mais complexo, pois a submissão é dividida em duas etapas: a gravação no repositório local (commit), e a sincronização com um repositório remoto (push)
  • essa complexidade pode ser amenizada com configurações que simulem o comportamento dos antigos controles de versão (automatic update e automatic push)
  • os merges são mais seguros e simples
  • forks, branches e outras ramificações são feitas sem medo, devido à simplificação dos merges
  • criar um repositório local exige um simples comando
  • com o DVCS você vai encontrar mais usos para o controle de versão, com ele você pode controlar a versão de binários em produção, e de outros arquivos menos importantes do dia a dia para os quais não vale a pena o esforço de configurar um repositório dos SCM centralizados
  • DVCS é muito útil quando trabalhando sozinho, e muito mais vantajoso quando em grupo

Um comentário:

Cawas disse...

estou comecando a mexer com GIT e, depois de conhecer SVN e TFS posso dizer que ele eh muito superior e mais completo. nao eh a toa que se o SVN foi a evolucao do CVS, GIT tai pra ser a 3a geracao.