Projeto open source: Caelum git-reports

Completamos recentemente, aqui na Caelum, a migração de todos os nosso projetos para git, o sistema de controle de versões distribuído criado inicialmente por Linus Torvalds para o desenvolvimento do kernel Linux. Esta migração, realizada pelo Cauê Guerra e pelo Jonas Abreu, foi motivada por algumas características do git que se mostraram úteis em alguns projetos internos e pessoais; em especial, a possibilidade de fazer commits locais (muito útil quando não há acesso à internet) e os branches locais baratos.

Em vez de mantermos nós mesmos nossos repositórios, optamos por hospedá-los no GitHub. Esse serviço oferece uma interface web bastante prática e nos permite, convenientemente, centralizar nossos projetos públicos e privados em um único serviço. Contudo, entre tantas facilidades, sentimos falta de uma forma de observar a atividade recente em todos os nossos repositórios de forma centralizada e de ter alguma medida da atividade de cada desenvolvedor em cada projeto – e vice-versa. E para atender a essa necessidade, eu e o Cauê Guerra escrevemos o Caelum git-reports, um pequeno projeto em Ruby.

O software gera, a partir de um conjunto de repositórios git, uma medida do impacto de cada desenvolvedor (discriminado por projeto), do impacto em cada repositório (discriminado por desenvolvedor) e um resumo de todos os commits recentes, apresentando o resultado em HTML. Adotamos a mesma definição de impacto usada pelo GitHub: a soma das linhas acrescentadas e removidas. De fato, uma medida bastante grosseira, mas que tem suas utilidades. O projeto é muito novo, e podemos facilmente adicionar novas funcionalidades, como critérios para verificação de atividade nos repositórios, além de gráficos.

Quem quiser saber mais sobre o git pode consultar o tutorial para preguiçosos como ponto de partida. Outros recursos úteis podem ser encontrados no site oficial e no índice de guias do GitHub. Quem prefere o formato de vídeos também deve conferir o GitCasts.

8 Comentários

  1. Alberto Leal 03/07/2009 at 05:27 #

    Parabéns pela iniciativa! Nunca vi nada parecido.

    Vou dar uma olhada com calma nesse projeto neste final de semana =D

    Abs
    Alberto

  2. Davis 03/07/2009 at 05:28 #

    Legal o projeto. Aqui estou usando GitHub + Pivotal Tracker + Twitter: toda movimentação de stories e commits vai para um twitter private!

  3. Diogo 03/07/2009 at 10:09 #

    Maneiríssimo!

    E realmente, o recurso de commit local é um grande diferencial. Sem dúvida o que eu mais sinto falta no SVN.

  4. CMilfont 03/07/2009 at 12:09 #

    Parabéns, turma. Trabalho fantástico, já vou adotar nos projetos aqui

  5. Leonardo Pinheiro 03/07/2009 at 13:14 #

    Belíssima iniciativa de migrar os projetos da empresa para Git. Meus parabéns!

  6. Alexandre Ferreira 17/07/2009 at 11:26 #

    SVN, CVS e GIT.

    Tem a mesma finalidade?

    Se sim por que não usar o mais maduro SVN? Existe algum lugar do mundo hoje sem internet?

    []’s

  7. Pedro Matiello 17/07/2009 at 16:40 #

    Olá, Alexandre. Pessoalmente, gosto dos commits e branches locais do git. Todas as operações são instantâneas e você só manda de volta para o servidor o que realmente deve ser compartilhado (a rigor, um repositório central nem é necessário).

    De fato, poucos lugares não têm internet hoje, mas, ainda assim, ela cai às vezes. E o git nos permite manter um fluxo de trabalho normal nesse período.

    Sobre a maturidade, acho que não é um problema. Vários projetos grandes têm usado o git com sucesso. Uma lista está disponível em http://git.or.cz/gitwiki/GitProjects

    Ainda, existe uma comparação bastante equilibrada entre git e svn em http://git.or.cz/gitwiki/GitSvnComparsion

    Abraço

  8. Clebs 01/08/2009 at 02:29 #

    Parabéns,
    mas vc deveria falar sobre a política de segurança!

Deixe uma resposta