O Git e a Riopro

Estamos começando a usar o Git aqui na Riopro. A mudança se dará aos poucos, principalmente porque usamos o Trac para acompanhar nossos projetos e ainda não achamos uma solução para migrar rapidamente o conteúdo existente. Para falar a verdade, ainda não procuramos com calma e aceitamos sugestões. O retrospectiva parece já ter um adaptador git, falta saber como migramos os dados já existentes. Outro que estamos de olho é no Redmine, que parece ser bem completo também. Projetos novos podem até ser criados usando inteiramente o Git. Para os antigo, hoje, estaremos usando o git-svn.

Para os (poucos?) que ainda não conhecem, esse é o sistema de controle de versão (SCV) criado pelo Linus Torvalds. Um vídeo de uma palestra dada no Google a 1 ano atrás (esse aí em baixo) explica um pouco a diferença entre o Git e os outros. Foi vendo esse vídeo que eu realmente me dei conta que não se trata de 1 ou 2 funcionalidades a mais, mas sim de uma nova forma de encarar o controle de versões. Se você vai ver o vídeo (ou se já viu), ignore o fato do Linus ser “meio” enfático/radical ao descrever todo mundo que não usa Git. Ele apenas quer provar seu ponto de vista.


O Git muda alguns paradigmas em relação ao CVS e ao Subversion (SVN). O primeiro ponto, ressaltado pelo próprio Linus na palestra, é a inexistência de um “servidor central” (master). O segundo é a extrema facilidade com que branches são criados. Mais que isso o Git foi concebido para tornar simples o merge desses branches. E essa característica é algo muito importante (ao menos para mim).

Outra funcionalidade interessante é a de realizar commits offline. Essa situação é especialmente útil em 2 casos: inexistência de acesso à rede onde está seu servidor central SCV (avião seria o caso clássico, pelo menos por enquanto) ou versionar um trabalho em andamento. Sim, porque em uma estrutura centralizada, todo commit que você faz deve ser garantido (testado) pois vai estar disponível para o update de todos os outros programadores ou mesmo clientes. Quanto maior a equipe, maior a importância desse commit descentralizado.

A descentralização/individualização dos branches adiciona um fato importante: o fato de não existir um servidor central faz com que o branch de cada um seja importante. As pessoas seguramente terão um, ou 2, ou 3, preferido(s), mas a importância de cada branch é diretamente relacionada com a importância/influência de um programador em relação ao projeto.

Essa característica é bastante interessante, principalmente para projetos open-source. Esse poder pode até mesmo precipitar mudanças nos rumos do Roadmap de uma aplicação. O Linus cita isso em sua palestra ao falar que hoje ele é o branch principal do kernel do Linux, mas quem sabe alguém pode ter um branch mais importante que o dele (as palavras que usei não são uma tradução exata, apenas o sentido geral). Ou seja, ponto para a comunidade.

Para saber um pouco mais sobre o Git:

6 opiniões sobre “O Git e a Riopro”

  1. Olá Fábio. Para começar, desculpe pela quebra de layout que estava ocorrendo.

    Sim, eu conheço o Mercurial. Já li bastante sobre ele, mas nunca usei na prática. Parece ser muito bom mesmo.

    Eles são e ao mesmo tempo não são diferentes. Ambos substituem um BitKeeper que não é mais livre.

    Na verdade, acho que o Git vai vingar porque o Linus está por trás. E ele vai continuar sendo um ótimo projeto, da mesma forma que o Mercurial é, mas com uma comunidade maior.

    O meu ponto é: procurávamos algo que realmente fosse muito melhor que o subversion. E agora temos.

    Alguns artigos para pensar:

    http://tytso.livejournal.com/29467.html

    http://www.jukie.net/~bart/blog/20060621151402

    abraços,

    otávio

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *