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 é 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.
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.