Visualizing version control with Gource

Last update:

I believe no project can thrive without good version control. It is also difficult to keep collaborators sane when multiple people modify the same file without such a tool.

Several excellent, free systems (Subversion, Git, and Mercurial) are available to programmers for recording source-code changes and maintaining parallel versions (branches). You do not need a public server to version a project with friends. Some free services for open-source projects are easy to use, including Assembla and GitHub.

A version-control system records modification dates, changed files, the user who submitted a change, and their message. That is already useful to most programmers—and enough for anyone who wants to follow a project's progress without having to ask.

Gource ​

Gource is an application that graphically visualizes a project's complete version-control history. It can read a Subversion, Bazaar, Mercurial, or Git repository and create images showing how users interact with files and folders.

I tested repositories that had existed for more than four years at my company, and the results were interesting. You can see which features developers work on most and observe the impact of each submitted change. Creating branches is another spectacle.

Sample of one effect ​

Ten years of a library's development ​

The third video shows Python's development history from 1990 to around 2010 ​

The tool can also read log files in a specific format, so you can create a converter that turns another kind of log into data that Gource can display.