The Exodus: Leading Drupal out of CVS
(notes from a session at DrupalCon 2010)
How did we get here?
- Why are we still on CVS? lots of legacy code and inertia, but Webchick sat down to figure it out
- Why not Subversion? Some annoying limitations with merging, etc.
- Why Git? just seemed to be best fit, had most community support
Git is not as scary as you may think
- how CVS does it: centralized, developers check in with central server
- Git is distributed: shared repository checked into from various local repositories, developers interact with local respository
- This means you can actually commit data to the repository while offline; local respository will check in later.
- instead of checkout/update/diff/commit, commands are clone/pull/diff/commit/push
The deployment plan
- finish up the plan, give this presentation today!
- maintain testing, read-only Git mirror of the CVS repository. Currently about 98% perfect, leaving only some contrib projects. Need to sync the mirror more regularly so people can start setting up their local repositories.
- move projects to Git without changing the way we collaborate on drupal.org
- create one repository per project. This requires updating packaging scripts, updating test bot, implementing access control and repository creation, checking for errors
- this (steps 3-4) will have to be done in a "big bang" fashion -- all or nothing.
- fully embrace distributed nature of Git: create a repository for each issue in the queue, allowing anyone to commit code to that repository and anyone to "branch" it to suggest alternative solutions.
- host "sandbox" repositories for anyone who asks; promote to project status after community review.
How you can help
- join the "Git Migration Team" group on groups.drupal.org
- join the architecture planning sprint on Thursday 4/22
- help write documentation, tutorials, etc.
- admin's blog
Printer-friendly version- Add new comment
- 1454 reads




Recent comments
1 week 4 days ago
1 week 4 days ago
1 week 4 days ago
11 weeks 2 days ago
11 weeks 3 days ago
11 weeks 4 days ago
20 weeks 2 hours ago
20 weeks 13 hours ago
43 weeks 2 days ago
43 weeks 2 days ago