# Visualização de versionamento com Gource

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 (Subversionopen in new window, Gitopen in new window e Mercurialopen in new window) que estão disposição de qualquer programador para que este registre as alterações no código fonte e inclusive mantenha versões paralelas (branches). Não é necessário nem passar trabalho para instalar um servidor público se quiser 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 (Assemblaopen in new window e Githubopen in new window).

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 http://code.google.com/p/gource/open in new window) é um aplicativo para visualização gráfica de todo o histórico de versionamento de um projeto, e ele pode ler informações de um repositório Subversion, Bazaar, Mercurial ou Git para criar belas imagens da interação dos usuários com os arquivos/pastas.

Fiz alguns testes com alguns repositórios que já existem a mais de 4 anos na empresa que trabalho e os resultados são muito interessantes, é possível ver onde as funcionalidades que os desenvolvedores mais trabalham e observar o impacto nos arquivos em 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.

Last updated: Apr 13, 2012