Push script as far as I got
diff --git a/scripts/migration_script.sh b/scripts/migration_script.sh
new file mode 100644
index 0000000..0eb77d9
--- /dev/null
+++ b/scripts/migration_script.sh
@@ -0,0 +1,313 @@
+#!/bin/bash
+# *** Don't run this script :-) ***
+
+ROOT=/shared/eclipse/e4/git/cvs
+MIGR=$ROOT/org.eclipse.migration
+
+##################################################
+# first up, the big one: eclipse.platform.ui
+
+# make the fake cvs repo in the right shape
+CVS_LOC=$ROOT/cvsroot.eclipse.platform.ui
+mkdir $CVS_LOC
+cd $CVS_LOC
+cvs -d :local:$(pwd) init
+mkdir -p eclipse.platform.ui
+cd eclipse.platform.ui
+mkdir bundles examples features tests
+
+
+MIGR_PASS=$MIGR/eclipse.platform.ui/pass3
+
+cd /cvsroot/eclipse
+. $MIGR_PASS/modules_ui.sh
+for M in $MODULES; do
+ echo $M
+ cp -r $M $CVS_LOC/eclipse.platform.ui/bundles
+done
+
+cd $CVS_LOC/eclipse.platform.ui/bundles
+mv *tests* ../tests
+mv *example* *snippet* ../examples
+
+# clean the CVS repo of links
+find $CVS_LOC -type l|xargs -n 1 rm
+
+#get the tool, once
+cd $ROOT
+svn co --username=guest --password="" http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk
+
+# generate the import data
+# make sure the author names are correct
+# make sure your options file points to the correct tmp cvsroot
+cvs2svn-trunk/cvs2git --options=$MIGR_PASS/cvs2git.options >cvs2git_log.txt 2>&1
+cp symbol-info.txt $MIGR_PASS
+
+
+# create a git repo to be used for verification
+git init verify.eclipse.platform.ui
+cd verify.eclipse.platform.ui
+cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import
+
+python ../cvs2svn-trunk/contrib/git-move-refs.py
+git prune
+git repack -a -d --depth=250 --window=250
+git gc --aggressive
+git repack -a -d --depth=250 --window=250
+
+# verify the repo - this can take long, so for your first test skip this step.
+cd $ROOT
+mkdir compare-tmp
+python $ROOT/cvs2svn-trunk/contrib/verify-cvs2svn.py \
+--git $CVS_LOC/eclipse.platform.ui \
+$ROOT/verify.eclipse.platform.ui \
+--tmp=$ROOT/compare-tmp --diff >$MIGR_PASS/compare-log.txt 2>&1 &
+
+# create a git repo to continue the conversion
+git init target.eclipse.platform.ui
+cd target.eclipse.platform.ui
+
+### this didn't work
+git config user.email pwebster
+git config user.name "Paul Webster"
+
+cat - >.gitignore <<EOF
+bin/
+*~
+*.rej
+*.bak
+core
+*.so
+*.patch
+javacore.*
+heapdump.*
+core.*
+Snap.*
+target/
+
+EOF
+
+git add .gitignore
+git commit -m "adding .gitignore for everything"
+
+## EOF the above failed
+
+cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import
+python ../cvs2svn-trunk/contrib/git-move-refs.py
+git prune
+git repack -a -d --depth=250 --window=250
+git gc --aggressive
+git repack -a -d --depth=250 --window=250
+
+
+# we also have to delete at least 2 tags:
+git tag 'R3_6_api_cleanup_build_20091125' 'R3_6_api_cleanup_<build_20091125>'
+git tag -d 'R3_6_api_cleanup_<build_20091125>'
+git tag 'R3_6_p2_api_cleanup_20091216' 'R3_6_p2_api_cleanup_<20091216>'
+git tag -d 'R3_6_p2_api_cleanup_<20091216>'
+
+# Fixing the Delete only tags:
+cd $ROOT
+/bin/bash $MIGR/scripts/fix_tags.sh >$MIGR_PASS/tag_report.sh
+grep ^git $MIGR_PASS/tag_report.sh >$MIGR_PASS/mv_tags.sh
+# examine them
+/bin/bash $MIGR_PASS/mv_tags.sh
+
+# now examine the repo, hopefully the tags and branches that we care about are in decent shape.
+# In my case, I see Cherrypick markers for a couple of tags. When the conversion is complete and most
+# people are happy, a developer will have to examine these commits to see if they
+# can be simplified.
+
+grep ^Cherry $MIGR_PASS/tag_report.sh >$MIGR_PASS/tag_cherrypicks.txt
+grep "R[34]_" $MIGR_PASS/tag_cherrypicks.txt
+#Cherrypick tag: R3_0 commit: ead7a690ae2a6b78507ee0705e2cdd193c4c9dfd
+#Cherrypick tag: R3_0_2 commit: 33b9f9f25fd8e45cd2206a504725bcfb03e9199f
+#Cherrypick tag: R3_1 commit: 83d5b3b8596bf06ceea3cf0054dd6c66e049f054
+#Cherrypick tag: R3_3_1_1 commit: a74e9bad283b3d01ec5683fa719710e9ca0e645b
+#Cherrypick tag: R3_4_1 commit: 96e8167b3756219d62dcaf5318c6a42f1b93dfb9
+#Cherrypick tag: R3_5 commit: 4186af7444f9685e7f4bf27cfe1878866ce9a2e5
+#Cherrypick tag: Root_R3_4_maintenance commit: e4ec86e43c2cec1e0d6e94660bed1704d5eaf41d
+
+git branch >$MIGR_PASS/branches.txt
+git tag >$MIGR_PASS/tags.txt
+
+
+#
+# after the other repos are converted, the next step is the merge with eclipse.platform.ui.e4
+#
+
+
+##################################################
+# next, org.eclipse.e4.tools since it should be isolated
+MODULE_NAME=org.eclipse.e4.tools
+
+cd $ROOT
+CVS_LOC=$ROOT/cvsroot.$MODULE_NAME
+mkdir -p $CVS_LOC/e4
+cd $CVS_LOC
+cvs -d :local:$(pwd) init
+
+MIGR_PASS=$MIGR/org.eclipse.e4.tools/pass3
+cp -r /cvsroot/eclipse/e4/$MODULE_NAME $CVS_LOC/e4
+
+# clean the CVS repo of links
+find $CVS_LOC -type l|xargs -n 1 rm
+
+# generate the import data
+# make sure the author names are correct
+# make sure your options file points to the correct tmp cvsroot
+cd $ROOT
+vi $MIGR_PASS/cvs2git.options
+rm -rf cvs2svn-tmp symbol-info.txt cvs2git_log.txt
+cvs2svn-trunk/cvs2git --options=$MIGR_PASS/cvs2git.options >cvs2git_log.txt 2>&1
+cp symbol-info.txt cvs2git_log.txt $MIGR_PASS
+
+
+
+# create a git repo to be used for verification
+git init verify.$MODULE_NAME
+cd verify.$MODULE_NAME
+cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import
+
+python ../cvs2svn-trunk/contrib/git-move-refs.py
+git prune
+git repack -a -d --depth=250 --window=250
+git gc --aggressive
+git repack -a -d --depth=250 --window=250
+
+# verify the repo - this can take long, so for your first test skip this step.
+cd $ROOT
+rm -rf compare-tmp
+mkdir compare-tmp
+python $ROOT/cvs2svn-trunk/contrib/verify-cvs2svn.py \
+--git $CVS_LOC/e4/$MODULE_NAME \
+$ROOT/verify.$MODULE_NAME \
+--tmp=$ROOT/compare-tmp --diff >$MIGR_PASS/compare-log.txt 2>&1 &
+
+# create a git repo to continue the conversion
+cd $ROOT
+git init target.$MODULE_NAME
+cd target.$MODULE_NAME
+
+cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import
+python ../cvs2svn-trunk/contrib/git-move-refs.py
+git prune
+git repack -a -d --depth=250 --window=250
+git gc --aggressive
+git repack -a -d --depth=250 --window=250
+
+
+
+# Fixing the Delete only tags:
+cd $ROOT/target.$MODULE_NAME
+/bin/bash $MIGR/scripts/fix_tags.sh >$MIGR_PASS/tag_report.sh
+grep ^git $MIGR_PASS/tag_report.sh >$MIGR_PASS/mv_tags.sh
+# examine them
+/bin/bash $MIGR_PASS/mv_tags.sh
+
+# now examine the repo, hopefully the tags and branches that we care about are in decent shape.
+# In my case, I see Cherrypick markers for a couple of tags. When the conversion is complete and most
+# people are happy, a developer will have to examine these commits to see if they
+# can be simplified.
+
+grep ^Cherry $MIGR_PASS/tag_report.sh >$MIGR_PASS/tag_cherrypicks.txt
+grep "R[34]_" $MIGR_PASS/tag_cherrypicks.txt
+# No R?_ Cherry pick tags
+
+git branch >$MIGR_PASS/branches.txt
+git tag >$MIGR_PASS/tags.txt
+
+cd $ROOT
+git clone --bare target.$MODULE_NAME deploy.$MODULE_NAME
+cd deploy.$MODULE_NAME
+git remote rm origin
+git config -l
+git config --add core.sharedrepository 1
+
+#
+#
+# This is as far as I got
+#
+#
+
+
+##################################################
+# next, eclipse.platform.ui.e4 - graduated Eclipse4 UI bundles
+MODULE_NAME=eclipse.platform.ui.e4
+
+cd $ROOT
+CVS_LOC=$ROOT/cvsroot.$MODULE_NAME
+mkdir -p $CVS_LOC/e4
+cd $CVS_LOC
+cvs -d :local:$(pwd) init
+
+MIGR_PASS=$MIGR/$MODULE_NAME/pass3
+copy_e4.sh $MIGR_PASS/modules_e4_ui.sh $CVS_LOC
+
+# clean the CVS repo of links
+find $CVS_LOC -type l|xargs -n 1 rm
+
+# generate the import data
+# make sure the author names are correct
+# make sure your options file points to the correct tmp cvsroot
+cd $ROOT
+vi $MIGR_PASS/cvs2git.options
+rm -rf cvs2svn-tmp symbol-info.txt cvs2git_log.txt
+cvs2svn-trunk/cvs2git --options=$MIGR_PASS/cvs2git.options >cvs2git_log.txt 2>&1
+cp symbol-info.txt cvs2git_log.txt $MIGR_PASS
+
+
+
+# create a git repo to be used for verification
+git init verify.$MODULE_NAME
+cd verify.$MODULE_NAME
+cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import
+
+python ../cvs2svn-trunk/contrib/git-move-refs.py
+git prune
+git repack -a -d --depth=250 --window=250
+git gc --aggressive
+git repack -a -d --depth=250 --window=250
+
+# verify the repo - this can take long, so for your first test skip this step.
+cd $ROOT
+rm -rf compare-tmp
+mkdir compare-tmp
+python $ROOT/cvs2svn-trunk/contrib/verify-cvs2svn.py \
+--git $CVS_LOC/e4/$MODULE_NAME \
+$ROOT/verify.$MODULE_NAME \
+--tmp=$ROOT/compare-tmp --diff >$MIGR_PASS/compare-log.txt 2>&1 &
+
+# create a git repo to continue the conversion
+git init target.$MODULE_NAME
+cd target.$MODULE_NAME
+
+cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import
+python ../cvs2svn-trunk/contrib/git-move-refs.py
+git prune
+git repack -a -d --depth=250 --window=250
+git gc --aggressive
+git repack -a -d --depth=250 --window=250
+
+
+
+# Fixing the Delete only tags:
+cd $ROOT/target.$MODULE_NAME
+/bin/bash $MIGR/scripts/fix_tags.sh >$MIGR_PASS/tag_report.sh
+grep ^git $MIGR_PASS/tag_report.sh >$MIGR_PASS/mv_tags.sh
+# examine them
+/bin/bash $MIGR_PASS/mv_tags.sh
+
+# now examine the repo, hopefully the tags and branches that we care about are in decent shape.
+# In my case, I see Cherrypick markers for a couple of tags. When the conversion is complete and most
+# people are happy, a developer will have to examine these commits to see if they
+# can be simplified.
+
+grep ^Cherry $MIGR_PASS/tag_report.sh >$MIGR_PASS/tag_cherrypicks.txt
+grep "R[34]_" $MIGR_PASS/tag_cherrypicks.txt
+# info goes here
+
+git branch >$MIGR_PASS/branches.txt
+git tag >$MIGR_PASS/tags.txt
+
+