[haiku-development] Re: Finally deciding on a new source control system for Haiku

  • From: Adrien Destugues <pulkomandy@xxxxxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 02 May 2011 19:38:46 +0100

Sorry, answering to multiple mails at a time as there was a lot of discussion on this (again...) today :

First of all, please everyone remember we, the Haiku project, are not willing to switch to a completely decentralized workflow. The switxh to a DCVS system has a main goal, which is simplifying the handling of patches that currently go through a long review process on Trac, slowing down the development. SVN was proven unable to handle this, so the switch to a DCVS is seen as the only solution.

The goal, however, is to keep our current centralized workflow, and only use some DCVS features to ease things that were painful in SVN.
What we want to get is :
* Easier local branching ; developper want to work on multiple features at the same time. Currently, the way to do that is either multiple checkouts of Haiku source tree with various changes in them, or developper branches on the server side. Both are painful to handle. A DCVS has the notions of local commits and changesets which make this a lot easier * Tracking of patches : people submitting patches attach them to Trac tickets. Such patches usually stay there for a long time, waiting for review. When they are finally reviewed by a developper, they need a round of coding style fixes and other improvements, we often ask the patch submitter to do that, with moderated success. And when the patches finally get fixed, either by the original submitter or someone else, it is out of date and doesn't apply anymore to the svn trunk. Handling that needs to apply the patch by hand. A DCVS would allow to keep the patch on the server as an unreleased changeset (or a branch, or some other way), and have it kept in sync with the trunk more easily.

We don't want people making easy forks, moving away from the current server setup, or anything else. We want to keep the current setup as much as possible, while still adding these improvements. Switching to github would be a way too big move for that. It has a great risk of going out of control.

We are switching to a DCVS only because it's the current trend, not because we actually want to be distributed. For the record, I'm currently using Jazz/Rational Team Concert at work, this is a centralized VCS, but it has all the features I mentionned above. However, it is integrated in the Eclipse IDE, and it is not free software, so it can't be used for Haiku. The hg-svn solution would be similar : it allows to keep the existing infrastructure as much as possible, and allows for the new things. It has the drawbacks of getting us to use two tools, svn and hg, one for development and the other for patch management. I think this will get boring soon enough.

Adrien / PulkoMandy

Other related posts: