Branches Visualization for Gitorious
Oh yeah, I really like Git. Having a whole repository locally and everywhere is great pleasure. And branching and merging is great fun. The only complicate thing is it's complex revision identifiers. But I don't think there's an easier way to do it right.
For overview, I use Giggle, a nice tiny tool. QGit does its job, too. When you're not in a fixed team of developers a hosting project comes handy. I use GitHub for that and the feature I use most is the Branches Visualization. But there is a problem: GitHub isn't free software and that practically centralizes development with Git.
Enter Gitorious, an open source platform. It is a bit different to GitHub, organized into project/repository instead of user/repository, but written in Ruby on Rails, too. I doubt if it will scale to many users. But that doesn't matter as much as it does with GitHub, because if not everyone sticks to gitorious.org development will become decentralized again. Like with Trac for Subversion.
The feature I miss most is the mentioned branches visualization. I want that, desperately. So I worked on it last weekend.
You can get the code from the 1-image-tells-more-than-megabytes-of-logfiles repository. I hope merging into mainline will be considered soon.
I don't know much about graph visualization and was very happy when I got it to work that quickly. My intention was to make it ordered by date instead of the natural branch/merge order. This introduces some problems under the circumstances of clock skews. I hope that my commit sorting attempt has gone right and will look nice with lots of repositories.
It should also be noted that generation of these graphs doesn't take more time than the other graphs that are already there, like the commits by week or commits by author graph, although it produces a huge SVG tree instead of tiny PNGs.
Currently, the graph is being shown vertically in the sidebar. But I like the idea of having a horizontal timeline, perhaps spanning all repositories of a project. Also, the SVG isn't 100% valid as I introduced title attributes for the circles — a way to show commit information in hint popups. At least Firefox does it. This could be done much better with JavaScript. Feel free to fork.