Last updated February 28, 2011.
We are leaving CVS behind, and migrating all Drupal.org code repositories to Git. This page describes the roadmap for the migration.
At DrupalCon San Francisco, some of the key people for this migration presented a session on The exodus: leading Drupal out of CVS. The slides for the presentation provide an introduction to the basic plan. Hopefully the video from the session will be posted soon, too, so you can hear what we said.
Given that this is such a large change for the entire community, we're going to carry it out in discrete phases. This document explains the phases in high-level terms. There are child pages where the low-level details (e.g. specific issues and tasks) are listed for each phase. This is the roadmap, the child pages are the working documents to implement each phase.
People interested in helping implement this plan are strongly encouraged to join the Drupal.org Git Migration Team group.
Phase 1: Read-only Git mirror
This phase is nearly complete. We now have http://git.drupal.org as a read-only Git mirror of the cvs.drupal.org CVS repositories. Users can not push changes into these Git repositories, since the mirror will be periodically destroyed and re-created, but they are encouraged to at least start playing with Git, setting up a development environment to checkout from (really "clone") these repositories, and so on.
The goal of this phase is to allow people to start to get familiar with Git, enable updates to the documentation, and flesh out initial problems before we actually switch-over to Git entirely.
Phase 2: Using Git but retaining a centralized workflow
In Phase 2, we will switch over to Git, but mostly retain the centralized workflow that the Drupal community is used to. Drupal core and each contributed project will each have their own official Git repository hosted on git.drupal.org. All of the project/release/issue management tools (including the release packaging scripts, the automated test infrastructure, etc) will be ported over to using these Git repositories, not CVS.
However, at phase 2 most Drupal development and collaboration will still be done via patches and the issue queues. We will still mostly be operating with a model of a single centralized repository for each project, we'll just have much better tools to interact with these central repositories.
Phase 3: Moving to a decentralized workflow
In phase 3, we will fully embrace distributed version control. This phase will itself have a number of phases, so sometimes we just call this "phase next". A few of the big ideas that would be introduced at this phase are:
- Each issue on drupal.org has a Git repository automatically created for it. Anyone could push changes to this repository as a way to collaborate on the issue. If conflicting approaches develop, Git branches could be created to represent the different ideas, or they could either be split out into separate issues to keep the discussion about each approach easier to follow.
- All users would be allowed to host Drupal-related Git sandboxes on git.drupal.org as a place to share code and collaborate (much like the role that github currently plays for a number of drupal.org users).
- Possibly moving to a system where Drupal core subsystem maintainers have their own public repositories and the core committers can pull changes from those repositories (i.e. starting to embrace the Linux kernel development model for Drupal core)
- ...
Comments
"Introduction to Git for Drupal" presentation
Here's a copy of a presentation I gave at Drupal Camp Colorado in June, 2010.
http://luhman.org/files/git-for-drupal.pdf
The first two-thirds are a general introduction to Git, with the last third more Drupal specific.
I also have a number of Git-tagged posts here :
http://luhman.org/categories/git
Topics include :
.
Drupal sites : luhman.org