Repository-visualization with Gource

During the lecture “software project”, me and my team (5 members) made a web application with JBoss Seam 2.2. After 2 semesters of hard work, we had a subversion-repository with as much as 999 revisions.

Now i discovered Gource, with which you can visualize the development of a repository over the time. So Gource created the following video after some hours of rendering:



How to use Gource?
First you need to check out the full repository with all revisions, which only works with a distributed version control system like Git or Mercurial.

We used Subversion for our project, which was no problem: a Git-client also works well in combination with a Subversion server. I checked out all revisions from our svn-repo by executing the following command (replace placeholders with your data):

git svn clone --username %MY_USER_NAME% %SVN_SERVER%

This results in a real local git-repository which can be used by Gource.

Next, i had to realize that Gource isn’t very practicable to use under windows: there you have to capure the video in realtime with a capture program.
With Linux, its pretty much easier: you can forward the render-output of Gource to FFmpeg via a pipe (i also tried it with Cygwin, but there where to many dependencies for FFmpeg to resolve). FFmpeg is easy to use and supports the H.264-codec, resulting in a decent quality and small file size.

So after some tweaking i ended up with the following script (i used Gource 0.26a):

#!/bin/bash
if [ "$1" = "" ] || [ "$2" = "" ] ; then
  echo "usage: gourcescript [GIT_FOLDER] [OUTPUT_FILE]"
else
  /home/ingo/gource-0.26a/gource "$1" -a 1 -s 1 --highlight-all-users --disable-progress --stop-at-end --output-ppm-stream - | ffmpeg -y -b 3000K -r 30 -f image2pipe -vcodec ppm -i - "$2"
fi
This entry was posted in General. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>