very helpful lioness

On Drupal.org moving to a distributed version control system

Mon, 02/08/2010 - 21:58 -- webchick

Update: Drupal.org is going Git!

Drupal.org's use of CVS as a version control system has long been a thorn in the side of the project and its contributor community. As many newer (and sexier) version control systems have popped up over the years, most of us have switched to something else for our day-to-day work, and the only time we need to remember how to use CVS again is when we are interacting with Drupal.org. It's a pain even for the most "blue-blooded" among us, and for some, this is a blocker to contributing back altogether. Dries has even identified playing around with other version control systems in his 8 steps for Drupal 8, and Larry also identifies it as a requirement for Drupal to realize it's not an underground success anymore.

Naturally, this situation prompts the periodic raising of the (perfectly reasonable) question by someone every few weeks of, "Why the %&#! is Drupal still using CVS?!" At one point, we got sick of expending time, energy, and focus on this question constantly, and so wrote up Why is Drupal still using CVS and how can I help change that?.

Unfortunately, no "help" ever materialized from the repeated linking of people over there, so after an impromptu IRC discussion the other day prompted by serial trouble-maker walkah, a few of us decided to brainstorm a list of what exactly it would take to gain some momentum on this goal (hey, testbot has been down for a few days, so we needed something to do! :P).

We created the following wiki page to centralize information and discussion, and coordinate mobilization around this effort:

Action items for moving Drupal.org off of CVS

The page has been up for about four days, and has had some very interesting discussion so far (happily, almost entirely devoid of meaningless "+1"-style comments). We've also in the process managed to wrangle a pretty nice list of resources for other projects who might be considering a similar move (or at least that's the hope)!

Here's a very high-level summary of the discussion so far:

  • Based on our project/community goals, as well as the effort required to get there, there is no point in moving to a better centralized version control system. Distributed version control seems to clearly be the way of the future for massive hubs of collaboration such as Drupal.org, and so we've eliminated Subversion as a contender. We also eliminated Mercurial, based on lack of community expertise.
  • Of the people in our community who use distributed version control systems, the overwhelming majority use Git. And by pulling random project metrics, Git also seems to be far and away the project with the most thriving community and most momentum behind it.
  • However, Bazaar has the support of the Drupal.org infrastructure team, since it is capable of functioning as both a centralized and decentralized version control system, making the mental shift easier.
  • We're currently exploring what sort of Drupal.org-related action items exist, as well as what possibilities exist for moving off of project* module, should we decide to do that, just to get all possible cards on the table.

So if you have expertise in Git or Bzr (or preferably, both), knowledge of the various Drupal.org infrastructure/Project* module details, and/or can provide more details to flesh out the blanks in the wiki, please head over to Action items for moving Drupal.org off of CVS and pitch in!

(Note: Comments are off on this post, because you should be posting over there instead. :))