gource is a tool developed by Google to visualize a Version Control System like GIT, SVN, CSV and others.

https://gource.io

My example is based on an SVN repo.
Should work similar with any other.

Create SVN log

svn log --verbose --xml https://bar.org/svn/foo/ > ~/svnLog.log

Prepare log for gource

svn-gource.py --filter-dirs ~/svnLog.log > ~/svnLog.gource.log

Gource the log

gource itself delivers an PPM stream
So, I’m piping everything into ffmpeg to convert to libx264 MP4

gource -800x600 --path ~/svnLog.gource.log -s 2 -b 000000 \
  --highlight-all-users \
  -title "Foo-Project Development" --hide progress,filenames \
  --user-scale 2.0 --stop-at-end --output-ppm-stream - | \
  ffmpeg -y -b 3000K -r 60 -f image2pipe \
  -vcodec ppm -i - -vcodec libx264 -preset slow -crf 28 \
  -threads 0 ~/project-foo-gource.mp4

Additional options

--user-image-dir /path/to/imgdir/     Sets the path to developer-images.
                                      Images should be named 
                                      'username.[png|jpg]'

Leave a Reply