You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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

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: ???

Format of commit messages

Need to confirm what this is with infra

PRs in github repos

PRs in apache/tomcat will be unaffected.

There are currently 3 open PRs against the other repos.

Solution 1: Close them and ask the OP to make a new PR against apache/tomcat if the issue is still a concern

Old github repos

Solution 1: Make them read-only

Developer process

Solution 1: Document options (multiple clones, git worktree, etc.) or better strill find an on-line reference.

Update docs

Solution 1: Update post migration and include in next release

Solution 2: As 1 but publish immediately.

Update website

Solution 1: Update svn.html post migration (any maybe rename)

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

 

  • No labels