gource visualization of multiple repositories

Gource is a software version control visualization tool (It creates shiny blinking videos of what you saved in git repositories ). To create a gource visualization of multiple git repositories here is what you do.

1.) clone all your git repositories in an emtpy folder. in this example i ll be cloning 5 repositories into /media/f4d3d9e5-f728-494c-aa65-a107a6bfdbbd/hypeGource

# mkdir /media/f4d3d9e5-f728-494c-aa65-a107a6bfdbbd/hypeGource
# cd /media/f4d3d9e5-f728-494c-aa65-a107a6bfdbbd/hypeGource
# git clone git://whatever.com/your.git.project.1.git
# git clone git://whatever.com/your.git.project.2.git
# git clone git://whatever.com/your.git.project.3.git
# git clone git://whatever.com/your.git.project.4.git
# git clone git://whatever.com/your.git.project.5.git
# ls -oah


2.) make sure you have gource installed if not try

# apt-get install gource

3.) create custom logs of all your projects

# gource --output-custom-log log1.txt corephalcon/
# gource --output-custom-log log2.txt coz
# gource --output-custom-log log3.txt cozlive
# gource --output-custom-log log4.txt playground
# gource --output-custom-log log5.txt pyrrad


4.) (optional) If you want each repository to appear on a separate branch instead of merged onto each other, you can use a ‘sed’ regular expression to add an extra parent directory to the path of the files in each project. These 5 repositories form a project ( www.chilloutzone.net ). so lets use the add the parten directory Chilloutzone:

# sed -i -r "s#(.+)\|#\1|/Chilloutzone#" log1.txt
# sed -i -r "s#(.+)\|#\1|/Chilloutzone#" log2.txt
# sed -i -r "s#(.+)\|#\1|/Chilloutzone#" log3.txt
# sed -i -r "s#(.+)\|#\1|/Chilloutzone#" log4.txt
# sed -i -r "s#(.+)\|#\1|/Chilloutzone#" log5.txt


5.) Join all the log*.txt files together to a single file and order them by the time
# cat log1.txt log2.txt log3.txt log4.txt log5.txt | sort -n > combined.txt

6.) Open the combined.txt and MAKE SURE YOU HAVE NOTHING IN THERE YOU DONT WANT THE WORLD TO SEE. Like the names of protected files, or the real identities people used in the gits. you can just use gedit or any other editor to remove the lines you dont want to share.

7.) start gource to see if its all like it should be ( you can scroll back n forth with your mouse )

# gource combined.txt

8.) render the video ( you need to have ffmpeg installed )

# gource -1280x720 -s 3 combined.txt -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4

9.) (optional). the file you ended up with is pretty big. I tend to use kdenlive to simply render the file again

10.) enjoy the result:

Leave a Reply

Your email address will not be published.

Powered by themekiller.com