Community

CVS to Git: Phase 2 [Complete]

Last updated May 7, 2011.

Introduction

This is the official place listing everything that was required for the second phase of the *.drupal.org migration to Git. This page was intended to represent a complete feature/needs/requirements list. In addition to providing a more-organized list of 'git phase 2' issues than the issue tracker can provide, there is information on this page about steps required for the migration that does not fit well in an issue.

Generally speaking, there were four places that code related to the migration will end up:

  1. A pre-existing "external" tool (e.g. a Git repository browser like "gitweb", etc)
  2. Version Control API and its child projects
  3. A new Git-specific module that's general purpose (i.e. not tied to drupal.org itself) but outside the scope of Version Control API
  4. A patch or new submodule in the drupal.org customizations project for truly drupal.org-specific code

Which of the four depends entirely on the issue at hand.

'Phase 2' Git integration tasks

User & Account Management

Project-centric tasks

Managing commit data

Manage pushes/network interaction

Finish VCS API 6.x-2.x

Data migration & CVS legacy issues

Documentation

Other

Testing & implementation

Git Network Responses

Git's hooks allow us to issue messages back to clients attempting to perform push operations. Following is a list of scenarios.

  • Successful push (probably nothing extra over what git does already)
  • Rejected push - push would result in a non-fast-forward merge (any repo)
  • Rejected push - user has no perms at all on the target repo (project repo)
  • Rejected push - user has perms on the target repo, but not on the target branch (project repo)
  • Rejected push - user's git privileges have been temporarily suspended (any repo)
  • Rejected push - user's git privileges have been permanently suspended (any repo)
nobody click here