Skip to content
This repository has been archived by the owner on Jul 8, 2020. It is now read-only.

Migration Checklists

Brad King edited this page Aug 15, 2013 · 22 revisions

This page provides checklists to be evaluated at a few points during migration.

Fill out the OSDI Project Kickoff Checklist before the Kickoff Meeting.

This checklist is to be evaluated just prior to running the actual conversion from Subversion to Git. The proposed conversion tool name, configuration files, and command-line invocation must be available to any reviewer following this checklist.

  • Check the Subversion repository URL to be converted:

    • Check that the URL belongs to the project to be converted.
    • Check that the URL points to the root of the Subversion repository.
  • Check the Author Map file authors.txt:

    • Check that all user names in Subversion history are mapped.

    • Check that all mappings are well-formed:

      user = Real Name <[email protected]>
      
  • Check the Directory-to-Branch Map configuration:

    • Check that code directories are mapped to branches for the code repository.
    • Check that docs directories are mapped to branches for the docs repository, if any.
    • Check that data directories are mapped to branches for the data repository, if any.
    • Check that all directories mapped to each repository directly contain relevant content. (No mapped directory should contain Subversion branch structure subdirectories.)

Finally:

  • Check that the configuration does not set the noMetadata option to git-svn. We need the meta-data to preserve Subversion revision numbers in Git commit messages. The meta-data the tool adds to commit messages will be filtered after raw conversion.

This checklist is to be evaluated just after to running the actual conversion from Subversion to Git but before updating content to add source code headers or project notice files. One or more repositories containing the results of the conversion tool must be available to any reviewer following this checklist.

  • Check that each repository has the branches it should according to the Conversion Input configuration (code, docs, or data).

  • Check that each repository history records proper commit authorship. Run the commands:

    $ git log --format='%an <%ae>' --all |sort|uniq
    $ git log --format='%cn <%ce>' --all |sort|uniq
    

    The output should be well-formed full name and email addresses:

    Real Name <[email protected]>
    
  • Check that Subversion revision numbers are available in the commit messages. The git-svn meta-data lines of the form:

    git-svn-id: https://ncisvn.nci.nih.gov/svn/example/trunk@1234 2465a239-a9df-dca0-63d6-4bfd70964974
    

    must have been replaced by lines of the form:

    SVN-Revision: 1234
    

Finally:

  • Check that each repository has the content it should. List all blobs to verify that no unexpected content is present in history.

This checklist is to be evaluated after migration of a project is otherwise complete.

  • Check the Project Notice Files

    • Check that the LICENSE, NOTICE, and README files appear in the master branch
    • Check that the LICENSE.txt file also appears in the gh-pages branch as instructed here
    • Check that the LICENSE, NOTICE, and README template placeholders have been replaced
    • Check that all links in the README file work
    • Check that the main repository README links to the docs and/or data repositories, if any
    • Check that the copyright holders listed in LICENSE and NOTICE match those agreed upon at the kickoff meeting
  • Check the Source Code Headers

    • Check files of several source code types

    • Check that the template placeholders have been replaced

    • Check that the copyright holders listed are correct

    • Check that the URL to the LICENSE.txt file works

    • Check that the URL to the LICENSE.txt file is of the form:

      http://ncip.github.com/<PROJECTNAME>/LICENSE.txt
      
  • Do a web search for the tool and verify that all appropriate links are found.

  • Check that the repository clones correctly and leaves "master" checked out:

    $ git clone https://github.com/NCIP/<PROJECTNAME>.git
    $ cd <PROJECTNAME>
    $ git status
    
  • Check that Subversion revision numbers are mentioned in the commit messages for future reference. Run:

    $ git log
    

    and look for commit message lines containing the corresponding Subversion revision numbers. For example:

    SVN-Revision: 1234
    

    These should have been produced by the migration instructions.