blob: 8745e93faa70664a687c8a1630e64d719775fc31 [file] [log] [blame]
#!/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 - started on work linux box
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
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
# last step before you deploy:
cd $ROOT
cat - >gitignore <<EOF
bin/
*~
*.rej
*.bak
core
*.patch
javacore.*
heapdump.*
core.*
Snap.*
target/
EOF
cd target.$MODULE_NAME
# from http://stackoverflow.com/questions/3895453/how-do-i-make-a-git-commit-in-the-past
new_file=$(git hash-object -w ../gitignore)
git filter-branch \
--index-filter \
'git update-index --add --cacheinfo 100644 '"$new_file"' .gitignore' \
--tag-name-filter cat \
-- --all
git reset --hard
#create deploy
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
#final pack and prune step
git prune
git repack -a -d --depth=250 --window=250
git gc --aggressive
git repack -a -d --depth=250 --window=250
cd $ROOT
scp -r deploy.$MODULE_NAME pwebster@git.eclipse.org:/gitroot/e4/${MODULE_NAME}.git
#
# DONE, org.eclipse.e4.tools
#
##################################################
# 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
$MIGR/scripts/copy_e4.sh $MIGR_PASS/modules_platform_ui.sh $CVS_LOC
# fix up the compat tests that moved into platform ui
cd $CVS_LOC/e4
mv org.eclipse.e4.compatibility/tests/* org.eclipse.e4.ui/tests
mv org.eclipse.e4.compatibility/features/org.eclipse.e4.rcp/ org.eclipse.e4.ui/features
#confirm there's nothing else in there
find org.eclipse.e4.compatibility/ -type f
# 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
# No changes here
git branch >$MIGR_PASS/branches.txt
git tag >$MIGR_PASS/tags.txt
# the next step for this one is to be merged into eclipse.platform.ui
##################################################
# next, eclipse.platform.runtime.e4 - graduated Eclipse4 core bundles
MODULE_NAME=eclipse.platform.runtime.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
$MIGR/scripts/copy_e4.sh $MIGR_PASS/modules_platform_runtime.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
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 changes here
git branch >$MIGR_PASS/branches.txt
git tag >$MIGR_PASS/tags.txt
# the next step for this one is to be merged into eclipse.platform.runtime ... still to be converted
##################################################
# next, org.eclipse.e4.ui - leftover e4 bundles and simpleide
MODULE_NAME=org.eclipse.e4.ui
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
$MIGR/scripts/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
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 changes here
git branch >$MIGR_PASS/branches.txt
git tag >$MIGR_PASS/tags.txt
cd $ROOT
cat - >gitignore <<EOF
bin/
*~
*.rej
*.bak
core
*.patch
javacore.*
heapdump.*
core.*
Snap.*
target/
EOF
cd target.$MODULE_NAME
# from http://stackoverflow.com/questions/3895453/how-do-i-make-a-git-commit-in-the-past
rm -f t1.txt
git checkout master
new_file=$(git hash-object -w ../gitignore)
git filter-branch \
--index-filter \
'git update-index --add --cacheinfo 100644 '"$new_file"' .gitignore' \
--tag-name-filter cat \
-- --all
git reset --hard
#create deploy
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
#final pack and prune step
git prune
git repack -a -d --depth=250 --window=250
git gc --aggressive
git repack -a -d --depth=250 --window=250
cd $ROOT
scp -r deploy.$MODULE_NAME pwebster@git.eclipse.org:/gitroot/e4/${MODULE_NAME}.git
#
# DONE, org.eclipse.e4.ui
#
##################################################
# next, eclipse.platform.ui.compat - The ui.workbench fork
MODULE_NAME=eclipse.platform.ui.compat
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
$MIGR/scripts/copy_e4.sh $MIGR_PASS/modules_compat.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
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 changes here
git branch >$MIGR_PASS/branches.txt
git tag >$MIGR_PASS/tags.txt
# the last step for this one is to be merged into eclipse.platform.ui and grafted on random places
##################################################
# Let's do eclipse.platform.runtime so core has a place to go
#from somewhere with a useful CVSROOT
../../scripts/retag_cvs.sh modules_runtime.sh R3_6 "06/04/2010 00:00" R3_6_maintenance >tag_pass1.sh
grep ^cvs tag_pass1.sh >tag_fix1.sh
#examine tag_fix1.sh and then run
/bin/bash -x tag_fix1.sh
# Then fix the other tags. TAG1 is a known tag (like from above :-)
../../scripts/subtag_cvs.sh modules_runtime.sh R3_6 R3_6_1 >subtag_pass1.sh
grep ^cvs subtag_pass1.sh >subtag_fix1.sh
#examine subtag_fix1.sh and then run
/bin/bash -x subtag_fix1.sh
../../scripts/subtag_cvs.sh modules_runtime.sh R3_6_1 R3_6_2 >subtag_pass2.sh
grep ^cvs subtag_pass2.sh >subtag_fix2.sh
#examine subtag_fix2.sh and then run
/bin/bash -x subtag_fix2.sh
# R3_5
../../scripts/retag_cvs.sh modules_runtime.sh R3_5 "06/05/2009 00:00" R3_5_maintenance >tag35_pass1.sh
grep ^cvs tag35_pass1.sh >tag35_fix1.sh
#examine tag35_fix1.sh and then run
/bin/bash -x tag35_fix1.sh
# Then fix the other tags. TAG1 is a known tag (like from above :-)
../../scripts/subtag_cvs.sh modules_runtime.sh R3_5 R3_5_1 >subtag35_pass1.sh
grep ^cvs subtag35_pass1.sh >subtag35_fix1.sh
#examine subtag35_fix1.sh and then run
/bin/bash -x subtag35_fix1.sh
../../scripts/subtag_cvs.sh modules_runtime.sh R3_5_1 R3_5_2 >subtag35_pass2.sh
grep ^cvs subtag35_pass2.sh >subtag35_fix2.sh
#examine subtag35_fix2.sh and then run
/bin/bash -x subtag35_fix2.sh
# R3_4
../../scripts/retag_cvs.sh modules_runtime.sh R3_4 "06/11/2008 00:00" R3_4_maintenance >tag34_pass1.sh
grep ^cvs tag34_pass1.sh >tag34_fix1.sh
#examine tag34_fix1.sh and then run
/bin/bash -x tag34_fix1.sh
# Then fix the other tags. TAG1 is a known tag (like from above :-)
../../scripts/subtag_cvs.sh modules_runtime.sh R3_4 R3_4_1 >subtag34_pass1.sh
grep ^cvs subtag34_pass1.sh >subtag34_fix1.sh
#examine subtag34_fix1.sh and then run
/bin/bash -x subtag34_fix1.sh
../../scripts/subtag_cvs.sh modules_runtime.sh R3_4_1 R3_4_2 >subtag34_pass2.sh
grep ^cvs subtag34_pass2.sh >subtag34_fix2.sh
#examine subtag34_fix2.sh and then run
/bin/bash -x subtag34_fix2.sh
# R3_7
../../scripts/retag_cvs.sh modules_runtime.sh R3_7 "06/24/2011 00:00" R3_7_maintenance >tag37_pass1.sh
grep ^cvs tag37_pass1.sh >tag37_fix1.sh
#examine tag37_fix1.sh and then run
/bin/bash -x tag37_fix1.sh
# let's get started
MODULE_NAME=eclipse.platform.runtime
cd $ROOT
CVS_LOC=$ROOT/cvsroot.$MODULE_NAME
mkdir -p $CVS_LOC/eclipse.platform.runtime/bundles
cd $CVS_LOC
cvs -d :local:$(pwd) init
MIGR_PASS=$MIGR/$MODULE_NAME/pass3
cd /cvsroot/eclipse
. $MIGR_PASS/modules_runtime.sh
for M in $MODULES; do
echo $M
cp -r $M $CVS_LOC/eclipse.platform.runtime/bundles
done
# 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 - updated for eclipse.platform.runtime
# 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/$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
#Cherrypick tag: R3_0_1 commit: 97501471bd7c6703f61c0f0ac8a7d9d6cbce26a7
#Cherrypick tag: R3_0_2 commit: 12ec8ee0788365599a1a4ad48cbf0afd7c377b23
#Cherrypick tag: R3_1_1 commit: 202d867ac7ed58a4fea01bdc7835be94c8ac9a34
#Cherrypick tag: R3_1_2 commit: d7dfd6ff907e77ca9f310b3f27e5402fba8214dd
#Cherrypick tag: R3_2_1 commit: cdbda0401288a0255427acd5ef5c0c4c9b91a49c
#Cherrypick tag: R3_2_2 commit: ad5844f5da7b5d688eb799d90eda450a952892e4
#Cherrypick tag: R3_3_1 commit: 7e0126e6acc3aef7229414450c973b4a2e30dc3f
#Cherrypick tag: R3_3_1_1 commit: 7e0126e6acc3aef7229414450c973b4a2e30dc3f
#Cherrypick tag: R3_3_2 commit: 7e0126e6acc3aef7229414450c973b4a2e30dc3f
#Cherrypick tag: R3_5 commit: 0fcdd52072d2283d9ebb39a03630caefb65614dd
git branch >$MIGR_PASS/branches.txt
git tag >$MIGR_PASS/tags.txt
# now we're ready to start stiching repos together :-)