Hitachi Vantara Pentaho Community Wiki
Child pages
  • Git Migration Process
Skip to end of metadata
Go to start of metadata

Process for migrating a project from Subversion to Git

  1. Create a wiki page for the project. Outline/template TBD.
  2. Notify developers {project-name} will be converted to git and to hold all commits.
  3. Use svn2git to migrate along with authors file found here: https://github.com/jganoff/svn-git-migration-scripts/blob/master/authors.txt
    1. TODO: Add full instructions.
    2. Verify branches and tags are created properly. Remove any branches that no longer exist. svn2git can erroneously leave branches intact when they've been closed/removed in svn.
    3. Convert line endings. See https://help.github.com/articles/dealing-with-line-endings, under "Re-normalizing a repo".
  4. Create the repository on the Pentaho Github account (or request that one be made via buildguy) and push migrated repository
    1. If the project is a fork of a third-party project try to find the repository for it on Github and fork it to the pentaho account instead of creating a new repository.*
  5. Update CI to reflect repository change
  6. Move svn repository to a top level archive/ folder its repository. If no archive/ folder exists for the repository create it.
  7. Notify developers migration is complete and include link to Project Migration List
  8. Update Project Migration List with old svn path, new git repo location, project page wiki, and archived svn path
  9. Update existing doc with new repo paths
  10. Notify community via forum posts, irc, twitter, etc.
    1. Idea for forum post: "The {project-name} has been migrated from our Subversion repository to the Pentaho account on Github! Please see {wiki-page-url} for more information."

* Updating third-party forked projects will be handled on a per-project basis and could require some merging of svn changes in to a specific branch. Once we've conquered this once we'll have a reproducible set of instructions.

Project Naming Conventions

  1. Try to stay away from "pentaho-" prefix
    1. Known exceptions: pentaho-platform
  2. Prefix project name with pillar name if applicable. e.g. mondrian-schema-workbench
  3. Project name should reflect name of artifact

Troubleshooting svn2git

Make sure you always run with the verbose option (-v or --verbose). Otherwise you don't see much as it's working and have no idea what it's doing

If it appears hung at this point...
$ svn2git <svn url> --username <username> --authors authors.txt --verbose
Running command: git svn init --prefix=svn/ --username=_username_ --no-metadata --trunk=trunk --tags=tags --branches=branches <svn url>
Initialized empty Git repository in /Users/<username>/code/git/<git project name>/.git/
Error validating server certificate for 'https://code.pentaho.com:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: code.pentaho.com
 - Valid: from Fri, 02 Dec 2011 22:29:52 GMT until Sun, 02 Dec 2012 22:29:52 GMT
 - Issuer: 07969287, http://certificates.godaddy.com/repository, GoDaddy.com, Inc., Scottsdale, Arizona, US
 - Fingerprint: 26:01:d1:fe:97:30:4e:6c:b0:92:14:59:5d:75:4c:d8:23:91:eb:4a

It is waiting for you to accept the certificate manually, type 'p <ENTER>'  to accept permanently.you may need to do this twice to accept it. If that doesn't work, you can kill the svn2git command and do it from the svn command like this:

$ svn info <svn url>/trunk

You will be prompted to:

(R)eject, accept (t)emporarily or accept (p)ermanently

Or, once you get past that, if it appears hung here...
$ svn2git <svn url> --username <username> --authors authors.txt --verbose
Running command: git svn init --prefix=svn/ --username=<username> --no-metadata --trunk=trunk --tags=tags --branches=branches <svn url>
Initialized empty Git repository in /Users/<username>/code/git/<git project name>/.git/
Authentication realm: <https://code.pentaho.com:443> CollabNet Subversion Repository

It is waiting for you to enter your svn password, you may need to enter it twice. Found this thanks to this post https://github.com/nirvdrum/svn2git/issues/59

  • No labels