I Love Git

I've been very busy implementing the enhanced content repository concept we came up for TYPO3 Phoenix. So busy that I hardly managed to answer my emails. Perfect timing for making the switch from Subversion to Git, don't you think?

The current sprint - which ends right during T3CON10 in Frankfurt - is really a challenge. The refined content repository concept (worth a dedicated post) requires a major refactoring and implementation of some complex mechanisms such as workspaces (with TYPO3-style shine-through support) and localization. Anyway, before this sprint I knew that I had to focus on this refactoring as much as possible and therefore had mixed feelings about our transition to Git.

I haven't really worked with Git before this and so when we made the switch after the release of Sprint 3, I took a quick crash course by Karsten who had been the driving force behind the whole transition. I had read the Version Control with Git book by O'Reilly some months ago but have to say that without a real project to apply it on it only gives you a rough idea. You can only learn Git by using it - and when you do it suddenly all becomes so logical, elegant, stable (no more svn cleanup for obscure reasons) and powerful!

Karsten will surely report in more detail about the tool chain we use. What I'd like to mention already though is that you find our Git repository at git.typo3.org and that we use Gerrit for reviewing patches. And that's basically the reason for my rejoicing - Gerrit and Git are such a great help when working collaboratively! If I find a bug or start implementing a new feature I create a topic branch in my local working copy. Because Git allows me to switch between the master and topic branch effortlessly I can always check if my fix really fixed the problem (well, of course unit tests play their role too). When I'm done, I push the topic branch to Gerrit. My team mates then have a chance to review my patch, give their comments (even inline comments in the code) and finally give their +1. If the patch is not good enough, I can upload a better version and discuss it again. If it's finally approved, Gerrit merges the change into the real master which we use for releasing FLOW3 and TYPO3 Phoenix.

If you like you can browse through our patches and discussions at review.typo3.org - just login with your typo3.org username and password.

So, in the end my initial fear was unfounded - the transition to Git was much more painless than I expected and improved the workflow and even the code quality of FLOW3 / TYPO3 Phoenix.

Leave a reply