Git/Migrating to Git

From Eclipsepedia

Jump to: navigation, search

Eclipse projects currently using CVS or SVN may migrate their repository to Git. Here is an outline of the steps:

Contents

Talk to your community, project lead

Your project lead(s) needs to endorse the move to Git. Inform your community about the desire to migrate. Keep them informed on the plan and the progress.


Understand the concept of Git repos

Since a Git repo is not the same as a CVS or SVN repo, we assume you understand the Git repository concept. More information can be found on the Git page.


Know the caveats

Git is new at Eclipse.org, and some of our existing tooling may not yet support Git. However, we expect that most of these issues will be resolved in time.


Plan and structure your Git space

  • Webmaster will create a directory on git.eclipse.org to store your Git repositories. Although Webmaster can create your Git repos for you, you are free to do this yourself.
  • Now is a great time to refactor your code structure. Map the current CVS/SVN directories, modules, plugins, etc. to their new home in Git.
  • Decide on a timeline: webmaster needs exclusive access to your CVS/SVN repo to import it (if that is what is decided). This will disrupt project operations. Choose a timeline to minimize impact.


Decide what to do with your existing code

You have two options for migrating your existing codebase to Git:

  1. Archive your current CVS or SVN repository. Webmaster will flag it as read-only. Commit the HEAD stream into Git. Start with a fresh, clean Git repository while preserving CVS/SVN history in its original state.
  2. Import your CVS/SVN history into Git. Once you are fully operational on Git, webmasters then delete your old, unused CVS/SVN repo.


Open a Bug

Open a bug against Eclipse Foundation > Community > Git requesting the migration. Make sure your project lead is CC'd and add a +1 to the bug. Include detailed plans for your migration:

  • migration timeline
  • mapping of current code to new Git repos
  • your decision regarding existing code (archive or import)