Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The commands to perform the migration are as follows:

# Make svn read only
# Confirm all commits have replicated to git
# Turn off the svn / git mirror

...

git push -u origin tomcat70
git push --tags

Issues

Merge forward or cherry-pick?

The model we have been using in svn is, effectively, to apply the fix to the latest version and then cherry-pick fixes to older releases. The natural git model is to apply the fix to the oldest version with the problem and then merge forward.

Solution 1: Cherry-pick

Solution 2: Switch to merge forward

Solution 3: ???

svn:external for native

Solution 1: Move native to git and use a sub-module

Solution 2: ???

CI systems

Solution 1: Switch them to pulling soutrce from git (Gump and buildbot support this)

Solution 2: ???

Configuration file diffs at tomcat.a.o

Solution 1: ???

trunk or master

Solution 1: Rename trunk to master

Solution 2: Keep trunk

Solution 3: ???

Format of commit messages

...

Resolved Issues

  1. Review board. Tomcat gas been removed from (technically hidden in) the ASF ReviewBoard instance

  2. Config diffs in migration guide. Use gitweb. e.g.: 
    https://gitbox.apache.org/repos/asf?p=camel.git;a=blobdiff;f=pom.xml;hb=camel-2.20.1;hpb=camel-2.19.0
  3. Branch names. master, tc8.5, tc8.0, tc7.0 etc
  4. PRs. Those against apache/tomcat will remain. Currently no other open PRs. Any opened between now and migration will be closed and asked to be made against apache/tomcat.
  5. Merge strategy. Commit to master then cherry-pick to branches for older versions as required.
  6. CI Systems. Leave them pointing at svn. Migrate to git. Once we are happy with the git repo update the CI systems to use it.
  7. Java source code for tomcat-native. Pull in the source code from a specific tag/hash as part fo the build process.
  8. Mail format. See recent tomcat-training emails on dev@ for examples. For further tweaks, infra have indicated patches to https://github.com/apache/infrastructure-puppet/blob/deployment/modules/gitbox/files/asfgit/git_multimail.py are welcome.
  9. Make old github repos read-only. Ensure information from PRs is available on dev@ list, in BZ or similar. Copy across anything missing. Then delete old repos.
  10. Developer process. git worktree
    1. https://spin.atomicobject.com/2016/06/26/parallelize-development-git-worktrees/
    2. https://blog.github.com/2015-07-29-git-2-5-including-multiple-worktrees-and-triangular-workflows/
  11. Documentation update
    1. Update post migration and release ASAP
  12. Website update
    1. Update post migration
    2. Rename to source.html
    3. Edit svn.html to link to source.html