Gource is a software version control visualization tool. I thought it would be fun to visualize Delphi’s source code with Gource, but that is not possible for obvious reasons. So, I decided to try-out Delphi’s cousins: Free Pascal and Lazarus.
I checked-out the respective code bases and ran them through Gource.
I checked-out the respective code bases and ran them through Gource.
Below are the Gource commands I used:
gource -1280x720 -o C:\\gource\\fpc.ppm -s 0.01 --hide dirnames,filenames,progress,mouse C:\\gource\\fpc
gource -1280x720 -o C:\\gource\\lazarus.ppm -s 0.01 --hide dirnames,filenames,progress,mouse C:\\gource\\lazarus
Gource shows the filenames and directories of the source code by default; still, I decided to hide them in these videos, because they were overlapping. You can play more with Gource, FPC and Lazarus on your own :-) For a comprehensive list of the command line options and arguments of Gource click HERE.
The above gource calls create two files: fpc.ppm and lazarus.ppm. I guess these are some kind of uncompressed video format. The files were huge: ~60GB and ~100GB respectively.
Then, I used FFmpeg to encode the above .ppm files into .avi files. The FFmpeg commands are below:
ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i C:\\gource\\fpc.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 C:\\gource\\fpc.x264.avi
ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i C:\\gource\\lazarus.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 C:\\gource\\lazarus.x264.avi
Finally, I uploaded fpc.x264.avi and lazarus.x264.avi to YouTube. You can see them below:
Free Pascal source code history visualized with Gource
Free Pascal source code history visualized with Gource
Lazarus source code history visualized with Gource
If you liked this post; please, show your appreciation but clicking the Google Plus (G+) button at the beginning of the article. Thanks!