First, a disclaimer: this is entirely based on a blog post from a co-worker on our internal Confluence instance and I didn’t come up with any of it. 😛
Gource is an extremely cool tool for visualising the history of a Git repository (and other source control tools) via commits, and it builds up an animated tree view. When combined with ffmpeg you can generate a video of that history!
On a Mac, install Gource and ffmpeg with Homebrew:
$ brew install gource ffmpeg
cd into the repository you’re visualising, and let ‘er rip!
$ gource -1280x720 \ --stop-at-end \ --seconds-per-day 0.2 \ -a 1 \ -o - \ | ffmpeg -y \ -r 60 \ -f image2pipe \ -vcodec ppm \ -i - \ -vcodec libx264 \ -preset fast \ -crf 18 \ -threads 0 \ -bf 0 \ -pix_fmt yuv420p \ -movflags \ +faststart \ output.mp4
Phew! The main options to fiddle with are the resolution from
1280x720 in this case), and the
crf setting from
ffmpeg (increase the number to decrease the quality and make a smaller file, or lower the number to increase the quality and make a larger file).
I ran it over my original website repository that started its life out as PHP in 2011 and was moved to Perl:
How cool is that?!
I also ran it over the codebase of the main codebase at work that powers our internal PaaS that I support and it’s even cooler because the history goes back to 2014 and there’s a ton of people working on it at any given time.