Projeto open source: Caelum git-reports
Por Pedro Matiello em 03/07/09Completamos 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.
Parabéns pela iniciativa! Nunca vi nada parecido.
Vou dar uma olhada com calma nesse projeto neste final de semana =D
Abs
Alberto
Comment by Alberto Leal — July 3, 2009 @ 5:27 am
Legal o projeto. Aqui estou usando GitHub + Pivotal Tracker + Twitter: toda movimentação de stories e commits vai para um twitter private!
Comment by Davis — July 3, 2009 @ 5:28 am
Maneiríssimo!
E realmente, o recurso de commit local é um grande diferencial. Sem dúvida o que eu mais sinto falta no SVN.
Comment by Diogo — July 3, 2009 @ 10:09 am
Parabéns, turma. Trabalho fantástico, já vou adotar nos projetos aqui
Comment by CMilfont — July 3, 2009 @ 12:09 pm
Belíssima iniciativa de migrar os projetos da empresa para Git. Meus parabéns!
Comment by Leonardo Pinheiro — July 3, 2009 @ 1:14 pm
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
Comment by Alexandre Ferreira — July 17, 2009 @ 11:26 am
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
Comment by Pedro Matiello — July 17, 2009 @ 4:40 pm
Parabéns,
mas vc deveria falar sobre a política de segurança!
Comment by Clebs — August 1, 2009 @ 2:29 am