Menu

Help us test the CVS -> Git migration!

February 3rd, 2011

Almost exactly one year ago today, the Drupal community reached consensus to migrate our version control system from CVS to Git. Today, the Git migration team is extremely pleased to announce that we are officially open for community testing in advance of our proposed launch date, February 17 February 24! Just in time for DrupalCon Chicago!

All of our work is hosted at http://git-dev.drupal.org/, our staging environment for the CVS -> Git migration! Here's how YOU can help test.

Important: READ ME FIRST!

Because during this pre-launch period we're also going to be doing performance optimization and integrating new code to fix bugs, here are some important things to be aware of:

  • Watch a screencast explaining how the new infrastructure works.
  • Testing will only be open during certain hours of the day. The Git Migration Community Testing Wiki contains the current status of the system as well as rebuild schedules, and a calendar which tells the times during which testing is open. When testing is open, you'll see an Apache password prompt (which prevents Google from indexing the site) that looks something like this:
    Apache password prompt indicates we're open for testing!
  • To log in to http://git-dev.drupal.org/, you must first reset your password.. This is a basic security precaution for our development sites. You can do this from the Request new password page. You’ll need to do this anytime git-dev has been rebuilt.
    Request new password screen.
  • All users, including current CVS account holders, need to agree to terms of use in order to obtain Git access. There are instructions for doing this at http://drupal.org/node/1047190. You'll also need to do this any time the server is rebuilt. Note: Click on the "Logged in as username" link to see the choices below.
    Navigate to the Git access tab.
  • The server will be rebuilt every two days. Each time that happens, you'll lose any projects and code changes you made, and also need to repeat the "reset password" and "agree to git terms" steps again in order to continue testing.
  • If you find problems, please log them against the Git Migration Community Testing issue queue. Make sure whatever you're reporting doesn't show up in our list of known issues first. One of our team members will receive reports and then push them into the correct issue queue, if necessary. There is also a #drupal-gitsupport channel on irc.freenode.net for new Git users (and experienced Git users who want to help make the transition as smooth as possible :)).

Got all that? Great. Here's what you can do on our new shiny Git architecture.

Getting started

Before starting, you must reset your password on git-dev.drupal.org, since the passwords have been masked there.

  1. Visit http://git-dev.drupal.org/user/password and submit the form.
  2. Check your e-mail for the link, log in, reset your password.

Now we start the actual Git setup.

  1. Visit http://git-dev.drupal.org/user
  2. Click the Edit tab
  3. Visit the "Git access" secondary tab
  4. Read and agree to the Git Access Agreement
  5. If you did not already have a CVS account you'll be asked to accept or change your desired git username. (If you already did have a CVS username and want to change it, see https://drupal.org/node/1036140)
  6. Optional: Visit the "SSH Keys" tab and add a new key by pasting your public key into it. (If you don't already have an ssh keypair, instructions are at http://help.github.com/key-setup-redirect)

Creating projects

With that we have enough set up to create a sandbox project.

  1. Visit the "Your Projects" tab, which will have have projects only if you're the owner of projects on Drupal.org.
  2. Click the Add a new project link (http://git-dev.drupal.org/node/add/project-project)
  3. Fill in the requested information making sure that the "sandbox" checkbox is checked. (If you didn't have the "Git vetted user" role, equivalent to CVS access permission, it would be checked and disabled.)
  4. You now have a sandbox project.

Now we can add files into the repository.

  1. Visit the "Git instructions" tab and follow the instructions there.
  2. Do and push additional commits as you see fit.
  3. View your commits on the project page "View commits".

Note: It's not possible to create releases on a sandbox. To create releases during testing, you must have an existing CVS account.

For those who have existing CVS accounts, you can now repeat the same process with a full project.

  1. Click the Add a new project link (http://git-dev.drupal.org/node/add/project-project)
  2. Fill in the requested information making sure that the "sandbox" checkbox is not checked.
  3. Use the "Git instructions" tab to help you create some files for the repository and commit them.

Create a project release:

  1. Tag the commit: git tag 7.x-1.0
  2. Push the tag: git push origin 7.x-1.0
  3. On the project page, click "Add new release" and choose the 7.x-1.0 tag as the base for the release
  4. Wait for the new release to be created
  5. Download the tarball or zipball and view the contents

And that's about it! Pretty spiffy, eh? :)

Of course, if everyone tested the above steps we wouldn't find any launch-busting bugs. ;) So please, also help us find edge cases. Remember to think outside the box as you go through, particularly if you're a more advanced CVS/Git user. Experiment. Try creating a feature branch that doesn't follow naming conventions. Try pushing multiple commits at once. Try to think of weird places we use version control data that might still have issues. Test your own projects and ensure their logs were parsed properly, and tarballs contain what they should.

FAQs

Are my code changes going to be saved when we migrate over?
Nope. All code changes will be wiped every 48 hours or so. Feel free to practice as much as you'd like, there's no fear of screwing something up!

I pushed a commit and it's not showing up. What gives?
Check http://git-dev.drupalcode.org/ to see if it's a bug with the Drupal.org log parser or a bug with Git.

Also, make sure that you've set your global git config variables to an e-mail address that's associated with your Drupal.org account. Otherwise, your commits will not be credited to you.

I checked the "I agree" box, but I still can't create projects. Why does it hate me?
The form under the "Git access" sub-tab is actually a two-step form; one step is agreeing to the terms of use, and another is specifying your desired Git username (which defaults to your drupal.org username). Submit the form a second time and you should be good to go!

Help us!

If you know Git well, please hang out in #drupal-gitsupport to help new users. Please help review issues in the git community testing queue, help solve support issue, clean up duplicates, improve the reports, write or improve the documentation, etc. We need all the help we can get in order to make this as smooth a transition as possible! Once Git goes live, CVS is dead, dead, dead. Hooray!