Saturday, March 23, 2013

Building a git network visualization tool

I always liked the Git network viewer (i.e. see this example). In the "early git days", I found it very useful to have a visible return of the git operations I was performing.
As today I found it more clear than the regular vertical log viewer.
Unfortunately it seems that only github provides a similar functionality, and of course it works only on remote repositories.

So, I decided to write a similar tool by myself :) I picked up Qt 5.0 and libgit2 and built something from scratch, in a few hours.
I thought it was a relatively simple operation, but in the end I spent a good amount of time fighting with QML performance. At the moment I just reached a decent level of performance (at least for a first version), and after I complete the GUI with a basilar set of options, I will publish it as OSS.

After the first version, I plan to add navigation functionalities the github viewer doesn't have and also a "graphs" page. This kind of visualization it's not really nice in repositories where many branch are involved, but I think I can find a way to display nicely these too...

So, stay tuned :)