Instructions:
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)
- A description for each of your repositories. The description will be seen in the web view: http://git.eclipse.org/c/


Proposed content:
Migration timeline: Development ready late March 2012, 2015  (Post Juno M6+1: March 19)
Archive or Import?: Import
Mapping of current code into Git:
    svnroot/rt/org.eclipse.persistence/incubator         -> git.eclipse.org/eclipselink/incubator.git/

    <all branches> = /svnroot/rt/org.eclipse.persistence/branches/*/trunk + /svnroot/rt/org.eclipse.persistence/trunk
    <all branches>/examples                              -> git.eclipse.org/eclipselink/examples.git
    <all branches>/jpa/plugins/javax.persistence         -> git.eclipse.org/eclipselink/javax.persistence.git
    <all branches>/plugins/org.eclipse.persistence.antlr -> git.eclipse.org/eclipselink/org.eclipse.persistence.antlr.git
    <all branches>/plugins/org.eclipse.persistence.asm   -> git.eclipse.org/eclipselink/org.eclipse.persistence.asm.git
    <all branches>/utils/eclipselink.utils.workbench.*   -> git.eclipse.org/eclipselink/workbench.git/eclipselink.utils.workbench.*
    <all branches>/(excluding the above)                 -> git.eclipse.org/eclipselink/product.git

    Possibilities/Questions:
    docs  -> is there enough to merit a repo or should i be lumped into another repo?
    project-admin (spec docs, project admin) those not in wiki/or the web cvs -> enough to merit repo?
    utils/workbench -> should all these (other than builder/builder test) go to a utils.git, or do we need finer deliniation of them?
                       workbench is associated with an eclipselink release (tooling for new features), but the others are almost independant.


Repo descriptions:
Need to work out the repos first, but for the repos already in git:
    git.eclipse.org/eclipselink/oracleddlparser.git:      Model classes to describe Oracle database artifacts (tables, procedures,etc.)
    git.eclipse.org/eclipselink/oracleddlparser.test.git: JUnit tests for model classes from oracleddlparser.git repository
    git.eclipse.org/eclipselink/sandbox.git:              Repo to 'experiment' and become familiar with git
