I’m trying to get the Slony project to give up cvs in favour of git. Being somewhat new to the project I don’t want to come off as too quick to change things but the topic has come up before and there wasn’t enough critical mass to actually make a change.
The Postgresql project has been a cvs based project for quite sometime, back in 2003 when Slony was first released it was hosted under the Postgresql gborg repository (a site where postgresql related projects could be hosted) it used cvs as well. Over the years there was been talk about moving to a more modern source control system but nothing seems to have come out of it.
I believe distributed source controls systems (DVCS) are the future for open source projects and have changed the way software is developed in the open source projects that have switched to them. With a DVCS such as git you don’t have just single source repository, instead everyone can have their own clone of the source repository which they can commit their changes to. Developers can share their cloned repositories thus making their changes public before committing them to the main repository. This makes it much easier to share non-finished code. A decent DVCS systems makes merging and tracking changes a lot easier than it used to be with cvs or svn. It is also a lot easier to work on multiple on related features at once. With cvs I’ve found myself checking out multiple copies of the source tree. I might have one for a larger feature that I’m doing that could take weeks to months of calender time to code. Then I often find myself checking out additional copies of the entire source tree to work on smaller bug fixes. If I want those bug fixes to be available to my larger body of work before they are committed to the main repo I’m likely in for some pain.
With git I just created a separate topic branch for the bug fixes (based of the mainline source), check my larger ,work in progress, changes to my private local clone of the repository and fix the bug on the topic branch. I can then merge the fix into my other branch. If at some later time my bug fix gets committed to the mainline, git will detect that the fix has already been applied to my branch and ignore it.
I’m hoping that giving developers a forum to post/share/track their Slony fixes will encourage more people to get involved with Slony development (historically the slony project hasn’t been that timely about committing or rejecting patches)
I’m pushing for git over any of the other DVCS systems because I’ve worked with it before and the Postgresql project has been evaluating it. The last thing I want Slony developers to have to do is spend a lot of time evaluating all of the different DVCS systems (the thought makes sticking with cvs appealing).
Nothing is going to happen until after pgcon (where rumor has it the Postgresql developers are going to discuss their use of git
) but I’m hoping we’ll have enough consensus and support to make a move then. So far no one has put forward an argument for staying with cvs.
In the meantime I’ve pushed my git clone (via cvsimport) of the source tree to github at http://github.com/ssinger/slony