Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Platform-releng/Juno Git Migration Recipe
This is a modified version of the steps described by the CDT team in bug bug 316208
Recipe for test conversion for p2
Steps to reproduce:
Contents
- 1 Copy the existing repository to a temp location
- 2 Remove broken symlinks in the repo from all to the components we moved above
- 3 Move old content into old and exclude old content from migration
- 4 Run cvs2git to do the conversion
- 5 Import the cvs2git output into git
- 6 Move tags into place
- 7 Prune + Repack the repository
- 8 Verify repo
- 9 Update map files
- 10 Run test build
Copy the existing repository to a temp location
mkdir ~/cvs; cd ~/cvs
cp /home/data/cvs/rt/org.eclipse.equinox.p2 .
Remove broken symlinks in the repo from all to the components we moved above
find cvs/ -type l|xargs -n 1 rm
Note: This didn't apply to us.
Move old content into old and exclude old content from migration
Need to create exclude list preliminary list is here
Run cvs2git to do the conversion
http://cvs2svn.tigris.org/cvs2git.html
Get latest cvs2git:
svn co --username=guest --password="" http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk
Export from cvs
cvs2svn/cvs2git --options=cvs2git.options
(To do: Add options file link)
Import the cvs2git output into git
cd /gitroot/p2 mkdir -p org.eclipse.equinox.p2/org.eclipse.equinox.p2.git cd org.eclipse.equinox.p2/org.eclipse.equinox.p2.git git init cat ~/cvs2svn-tmp/git-blob.dat ~/cvs2svn-tmp/git-dump.dat | git fast-import
Move tags into place
python ~/cvs2svn-trunk/contrib/git-move-refs.py
Prune + Repack the repository
git prune git repack -a -d --depth=250 --window=250 git gc --aggressive git repack -a -d --depth=250 --window=250
Verify repo
mkdir /tmp/compare-kmoir/ python /home/data/users/kmoir/cvs2svn-trunk/contrib/verify-cvs2svn.py --git /home/data/users/kmoir/cvs/p2/ /gitroot/p2/org.eclipse.equinox.p2/org.eclipse.equinox.p2.git/ --tmp=/tmp/compare-kmoir/ --diff
Update map files
replace CVS= with GIT= tag should remain replace path=p2/features with features replace cvsRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/rt/ with file:///gitroot/equinox/rt.equinox.p2.git update path
Run test build
Run test build on Hudson - job name is eclipse-equinox-git-test-N