-
Notifications
You must be signed in to change notification settings - Fork 7
Migration Checklists
Table of Contents
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 togit-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
, andREADME
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
, andREADME
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
andNOTICE
match those agreed upon at the kickoff meeting
- Check that the
-
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.