Version control history fun with gource

Gource by Andrew Caudwell is an OpenGL based tool to visualize version control history in an interactive organic fashion. It displays the repository changes over time as a tree of connected files (knots) and directories (branches), showing each contributor as a moving icon that modifies the tree as the repository grows and evolves.

It is fascinating to watch and you can actually see vast changes to the repository very clearly during the animation that gource produces. Fortunately there exists a windows installer on the official website, which makes the commandline tool really easy to use. Just point it to your repository (builtin support for Git, SVN, Mercurial etc.) and optionally set some properties to define the style of the visualization, e.g. to skip times where nothing really happened to the code base or to change the overall playback speed.

An example call could look like this (needs the gource.exe to be in your PATH environment variable, which the installer should have taken care of):

gource --seconds-per-day 3 --auto-skip-seconds 1 --user-image-dir c:\avatars c:\path\to\repository

It will take 3 seconds for each day in the history, but skip pauses where no commits happened after 1 second.

What I really like is the possibility to customize the little avatar images for each contributor: –user-image-dir should point to a directory that includes an image file for every person appearing in the history, named like their display names in the repository. Seeing your colleagues and yourself fly around on the project you’ve been working on is pretty cool 🙂

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s