Visualização de versionamento com Gource

Última atualização: 4/13/2012

Acredito que nenhum projeto sobrevive sem um bom controle de versão, e diria até que é impossível manter o mínimo de sanidade mental dos colaboradores de um projeto quando há modificações em um mesmo arquivo por mais de uma pessoa sem uma ferramenta destas.

Existem vários sistemas muito bons e gratuitos (Subversion, Git e Mercurial) que estão à disposição de qualquer programador para registrar alterações no código-fonte e manter versões paralelas (branches). Não é necessário instalar um servidor público para versionar um projeto seu e de seus amigos. Há alguns servidores gratuitos para projetos de código aberto que são muito fáceis de utilizar (Assembla e GitHub).

Basicamente um sistema de controle de versão guarda datas de modificação, arquivos modificados, o usuário de versionamento e uma mensagem deste que submeteu a mudança. Isso já parece ótimo para a maioria dos programadores, e convenhamos, já é o suficiente para quem gosta de saber o que se passa sem ter que perguntar a ninguém.

O Gource ​

O Gource é um aplicativo para visualização gráfica de todo o histórico de versionamento de um projeto. Ele pode ler informações de um repositório Subversion, Bazaar, Mercurial ou Git para criar imagens da interação dos usuários com os arquivos e pastas.

Fiz alguns testes com repositórios que já existem há mais de quatro anos na empresa onde trabalho, e os resultados são muito interessantes. É possível ver em quais funcionalidades os desenvolvedores mais trabalham e observar o impacto de cada modificação enviada pelos usuários. A criação de branches é outro espetáculo.

Sample de um dos efeitos ​

Histórico de dez anos do desenvolvimento uma biblioteca ​

O terceiro video é o histórico de desenvolvimento do Python de 1990 até meados de 2010 ​

A ferramenta também lê arquivos de log em um formato específico, assim você pode criar uma ferramenta que converta outro log em informação que pode ser representada nos mesmos moldes.