diff --git a/scripts/migration_script.sh b/scripts/migration_script.sh
index 0e68cc7..1518d27 100644
--- a/scripts/migration_script.sh
+++ b/scripts/migration_script.sh
@@ -505,14 +505,18 @@
 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
+# verify the repo - on a linux box, must contain cvsroot and verify.repo
+VERIFY_DIR=$ROOT/verify-$MODULE_NAME
+cd $VERIFY_DIR
+# comment out  UseNewInfoFmtStrings
+vi cvsroot.$MODULE_NAME/CVSROOT/config
+
+rm -rf $VERIFY_DIR/compare-tmp
+mkdir  $VERIFY_DIR/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 &
+--git $VERIFY_DIR/cvsroot.$MODULE_NAME/e4/org.eclipse.e4.ui \
+$VERIFY_DIR/verify.$MODULE_NAME \
+--tmp=$VERIFY_DIR/compare-tmp --diff >$MIGR_PASS/verify-compare-log.txt 2>&1 &
 
 # create a git repo to continue the conversion
 cd $ROOT
@@ -877,14 +881,18 @@
 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
+# verify the repo - done on linux box
+VERIFY_DIR=$ROOT/verify-$MODULE_NAME
+cd $VERIFY_DIR
+# comment out  UseNewInfoFmtStrings
+vi cvsroot.$MODULE_NAME/CVSROOT/config
+
+rm -rf $VERIFY_DIR/compare-tmp
+mkdir  $VERIFY_DIR/compare-tmp
 python $ROOT/cvs2svn-trunk/contrib/verify-cvs2svn.py \
---git $CVS_LOC/$MODULE_NAME \
-$ROOT/verify.$MODULE_NAME \
---tmp=$ROOT/compare-tmp --diff >$MIGR_PASS/compare-log.txt 2>&1 &
+--git $VERIFY_DIR/cvsroot.$MODULE_NAME/$MODULE_NAME \
+$VERIFY_DIR/verify.$MODULE_NAME \
+--tmp=$VERIFY_DIR/compare-tmp --diff >$MIGR_PASS/verify-compare-log.txt 2>&1 &
 
 # create a git repo to continue the conversion
 cd $ROOT
@@ -1013,4 +1021,133 @@
 scp -r * pwebster@git.eclipse.org:/gitroot/platform/${MODULE_NAME}.git
 #
 # DONE, eclipse.platform.runtime
-#
\ No newline at end of file
+#
+
+
+##################################################
+# eclipse.platform.ui : merge in eclipse.platform.ui.e4
+
+MODULE_NAME=eclipse.platform.ui
+MIGR_PASS=$MIGR/$MODULE_NAME/pass3
+MIGR_E4_PASS=$MIGR/${MODULE_NAME}.e4/pass3
+
+cd $ROOT
+rm -f t1 t2
+sort -u $MIGR_PASS/tags.txt >t1
+sort -u $MIGR_E4_PASS/tags.txt >t2
+comm -12 t1 t2  >$MIGR_PASS/common_e4_tags.txt
+
+# normally we would clean up the smaller repo, but it turns out these are
+# just tags on one bundle, so we'll move them in the new repo:
+
+cd target.$MODULE_NAME
+for TAG in $( cat $MIGR_PASS/common_e4_tags.txt ); do
+  git tag ${TAG}_ui ${TAG}
+  git tag -d ${TAG}
+done
+
+cd $ROOT
+rm -f t1 t2
+sort -u $MIGR_PASS/branches.txt >t1
+sort -u $MIGR_E4_PASS/branches.txt >t2
+comm -12 t1 t2 >$MIGR_PASS/common_e4_branches.txt
+
+# Only has branch master in common, that's not a problem
+
+
+# Fix R4_HEAD ... otherwise the merge will remove all the other plugins :-)
+# find the commits using git log
+cd target.$MODULE_NAME
+git log --boundary --pretty=oneline --decorate master..R4_HEAD >$MIGR_PASS/R4_HEAD_old.txt
+
+
+#cvs2svn 5021f5d2d046d0d89f130b761bbeec401fa368f6 # delete commit
+#bbokowski R3_6 e7b16db21a01ad9e587694d915cfa74a1787538c # parent commit
+git rebase --onto e7b16db21a01ad9e587694d915cfa74a1787538c 5021f5d2d046d0d89f130b761bbeec401fa368f6
+
+# add back any tags.  You have to manually look at the history, diff doesn't help
+git log --boundary --pretty=oneline --decorate master..R4_HEAD >$MIGR_PASS/R4_HEAD_new.txt
+# comparing them in gedit gives:
+git tag -f v20110614-1530_ui  6ec17d932dcb27a5d81c340c4c7d86de809fcd04
+git tag -f R4_1_ui  6ec17d932dcb27a5d81c340c4c7d86de809fcd04
+git tag -f v20110613-2030_ui e0eabf8224fda9bb90c9c4439473ac74b16e7af8
+git tag -f v20110506-1500_ui 43fce3201cf11cbec240e57a8de33546465ad6d7
+git tag -f v20110304-1630_ui 4a3dfd573d6d3d448619764ca802aae6d7a93802
+git tag -f v20100924-1330_ui e74d12694b3ed644d86649198eb8f3defa284e59
+git tag -f v20100714-1430_ui b60d29c95acd5d06d4ce0a8695c156769d8432cd
+git tag -f v20100712-1900_ui b60d29c95acd5d06d4ce0a8695c156769d8432cd
+git tag -f R4_0_ui b60d29c95acd5d06d4ce0a8695c156769d8432cd
+git tag -f R0_10_ui b60d29c95acd5d06d4ce0a8695c156769d8432cd
+git tag -f v20100712-1400 79c98b424e41ea8ce45dc836265ad91fb9b8de44
+
+
+
+# if you are creating the main repo, you're OK
+
+
+
+# merge org.eclipse.ui/R4_HEAD into the 4.2 master
+# did it using EGit and the http://wiki.eclipse.org/EGit/User_Guide#Resolving_a_merge_conflict
+# Merge tool
+    Conflicts:
+        bundles/org.eclipse.ui/META-INF/MANIFEST.MF
+        bundles/org.eclipse.ui/schema/viewActions.exsd
+
+
+git remote add e4 ../target.${MODULE_NAME}.e4
+git fetch e4
+git merge e4/master
+
+# turn remote branches from e4.ui into local branches
+rm -f $MIGR_PASS/localize_e4_branches.sh
+
+git branch -r | grep -v e4\/master >$MIGR_PASS/remote_e4_branches.txt
+for f in $( cat $MIGR_PASS/remote_e4_branches.txt ); do 
+BR=$( echo $f | sed 's/^.*\///g' )
+echo git branch -t $BR $f >>$MIGR_PASS/localize_e4_branches.sh
+done
+
+/bin/bash $MIGR_PASS/localize_e4_branches.sh
+git remote rm e4
+
+#
+#  This merges eclipse.platform.ui.e4 into eclipse.platform.ui
+#
+
+
+##################################################
+# eclipse.platform.ui : merge in eclipse.platform.ui.compat - this turned out to be a bad idea
+
+MODULE_NAME=eclipse.platform.ui
+MIGR_PASS=$MIGR/$MODULE_NAME/pass3
+MIGR_E4_PASS=$MIGR/${MODULE_NAME}.compat/pass3
+
+# we've merged in a lot of stuff, let's review
+cd target.$MODULE_NAME
+
+git branch >$MIGR_PASS/merge_branches.txt
+git tag >$MIGR_PASS/merge_tags.txt
+
+cd $ROOT
+rm -f t1 t2
+sort -u $MIGR_PASS/merge_tags.txt >t1
+sort -u $MIGR_E4_PASS/tags.txt >t2
+comm -12 t1 t2  >$MIGR_PASS/common_compat_tags.txt
+
+# normally we would clean up the smaller repo, but it turns out these are
+# just tags on one bundle, so we'll move them in the new repo:
+
+cd target.$MODULE_NAME
+for TAG in $( cat $MIGR_PASS/common_compat_tags.txt ); do
+  git tag ${TAG}_compat ${TAG}
+  git tag -d ${TAG}
+done
+
+cd $ROOT
+rm -f t1 t2
+sort -u $MIGR_PASS/merge_branches.txt >t1
+sort -u $MIGR_E4_PASS/branches.txt >t2
+comm -12 t1 t2 >$MIGR_PASS/common_compat_branches.txt
+
+# Only has branch master in common, that's not a problem
+
