Switching to Subversion?

There is talk on gnome-hackers to switch from CVS to Subversion as version control system. Some people instead suggested to switch to another, fundamentally different versioning system like arch or monotone.

While I’m very much in favor of switching to Subversion, I am very against switching to a more radically different versioning system at this point for several reasons:

  • A switch to Subversion is fairly unobstrusive. Basically all the several hundred if not thousand people that are using GNOME CVS now need to do is:
    1. Learn to type “svn” instead of “cvs”.
    2. Checkout their repositories again and move possibly not-yet committed patches over to the new working copy. This is probably the most difficult task.
    3. Learn to type “svn status” instead of “cvs checkout” if they want to learn about local changes.
    4. Learn about tagging and branching by making copies. This is something most people don’t need to care about.

    Compare this to other versioning systems that work vastly different than CVS did.

  • It was pointed out that moving to arch or something similar would mean that GNOME has to move to a different development philosophy. I don’t think that this is something you can just force on the whole project and all contributors. This is something that needs a slow but steady introduction. An all-or-nothing move would probably drive people away who have better things to do with their time than to spend it learning all about versioning systems.
  • Currently there are several competing distributed versioning systems. None have proven to become the clear market leader so far. Personally I am not looking forward to learn a different system for each project that I am involved in. I feel that GNOME should not play early adopter here, but instead wait until one system establishes itself as clear leader in the F/OSS community. There are several reasons for this, one of them being that the GNOME project should not put its political weight behind any specific project.

    I still hope that some of the projects to product a distributed versioning system will merge, and work together on a better system.

In summary, while I think that GNOME should probably move on to a distributed versioning system in the long term, I do not think that this time is now. We should wait until either one system becomes a market leader and then slowly progress towards using that system. Forcing such a system on all contributors could prove very damaging to the development process. Stick to Subversion for now.