Page tree
Skip to end of metadata
Go to start of metadata

The migration was tested by performing the migration commands below against markt-asf/tomcat rather than apache/tomcat.

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
# Switch to 'github as master'
 
# Clone the current trunk
git clone https://github.com/apache/tomcat.git tomcat
cd tomcat
# Only necessary for test repo
git remote set-url origin https://github.com/markt-asf/tomcat.git
 
# Clean up the 9.0.x tags
git tag -d `git tag -l JDBC* | grep -E '.'`
git tag -d `git tag -l TOMCAT_7* | grep -E '.'`
git tag -d `git tag -l TOMCAT_8* | grep -E '.'`
git tag -d `git tag -l TOMCAT_N* | grep -E '.'`
git tag -d TOMCAT_9_0_0_m27
git tag -d TONCAT_9_0_0_M23
git push origin :JDBC_POOL_1_0_1 :JDBC_POOL_1_0_2 :JDBC_POOL_1_0_3 :JDBC_POOL_1_0_4 :JDBC_POOL_1_0_5 :JDBC_POOL_1_0_6 :JDBC_POOL_1_0_7 :JDBC_POOL_1_0_8
git push origin :JDBC_POOL_1_0_8_4 :JDBC_POOL_1_0_8_5 :JDBC_POOL_1_0_9_0 :JDBC_POOL_1_0_9_1 :JDBC_POOL_1_0_9_2 :JDBC_POOL_1_0_9_3 :JDBC_POOL_1_1_0_0 :JDBC_POOL_1_1_0_1
git push origin :TOMCAT_7_0_42
git push origin :TOMCAT_8_0_0

# :TOMCAT_8_0_0_RC1 :TOMCAT_8_0_0_RC2 :TOMCAT_8_0_0_RC3 :TOMCAT_8_0_0_RC4 :TOMCAT_8_0_0_RC5 :TOMCAT_8_0_0_RC6 :TOMCAT_8_0_0_RC7 :TOMCAT_8_0_0_RC8 :TOMCAT_8_0_0_RC9 :TOMCAT_8_0_0_RC10

git push origin :TOMCAT_NATIVE_1_1_33 :TOMCAT_9_0_0_m27 :TONCAT_9_0_0_M23 
 
# Add Tomcat 8.5x
git remote add tomcat85 https://github.com/apache/tomcat85.git
git fetch tomcat85
git fetch tomcat85 --tags
git tag -d `git tag -l TOMCAT_8_0* | grep -E '.'`
git checkout --orphan tomcat85
git rm -rf .
git merge tomcat85/trunk
git remote rm tomcat85
git push -u origin tomcat85
git push --tags

 

# Add Tomcat 8.0.x

git remote add tomcat80 https://github.com/apache/tomcat80.git
git fetch tomcat80
git fetch tomcat80 --tags
git tag -f TOMAT_8_0_30
git checkout --orphan tomcat80
git rm -rf .
git merge tomcat80/trunk
git remote rm tomcat80
git push -u origin tomcat80
git push --tags

 

# Add Tomcat 7.0.x

git remote add tomcat70 https://github.com/apache/tomcat70.git
git fetch tomcat70
git fetch tomcat70 --tags
git checkout --orphan tomcat70
git rm -rf .
git merge tomcat70/trunk
git remote rm tomcat70
git push -u origin tomcat70
git push --tags

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

 

  • No labels