The conversion of the Drupal project to Git took me somewhat by surprise. I have recently found some time to upgrade my Drupal script library. Before the upgrade, this library used CVS to install Drupal and contributed modules and to query the status of installed components. Now that CVS usage is no longer supported, I had to modify the relevant scripts to check-out and update Drupal core and contributed modules via Git instead.
While I can completely understand the migration to Git from a developer standpoint. Drupal is developed in a distributed manner and a distributed SCM system makes perfect sense. Managing patches from many developers is a lot of work -- and being burdened with a crufty system like CVS just creates more work. HOWEVER, Git is less than optimal to use as the basis for a pure Drupal implementor's role. Because Git downloads the entire repository history on a clone, the size of an installed site skyrockets, taking longer to install and back-up. This can be worked-around by using a zipfile based installation, but then one looses the ability to stay up-to-date to a branch.
Back to the modifications made to the Drupal Script Library... The biggest changes are:
The conversion is, as of this writing, not quite complete. Items that are still pending are still tagged with 'TODO' comments within the script bodies. These items will be addressed in the coming days.
(updated 7/23) I have checked in the final version of drupalMigrateCVSToGit.sh. From the header of that script:
# Migrates a site that was built using the old, now deprecated # drupalCVSDeploy.sh script to Git usage. Using the script will # result in an installation that (more closely) resembles one # built using drupalGitDeploy.sh. ... # At the end of the process, the previous state of the site will # exist with a ".<time/date-stamp>.old" suffix and the new Git-based # site should exist in its place.
(if you find any issues with this script, please let me know.)