SVNMigration
From OpenOffice.org Wiki
Contents |
CWS on SVN
Migration of CVS/CWS/EIS to SVN
This is the hub page for information related to the migration of CVS/CWS/EIS to Subversion. Please enter links/information about sources of information, status and working notes.
Quick Status: Project is currently paused and waiting for more resources and buy-in to continue
We now have a SVN server set up for OO.o work at OSL. The server is a prototype but can be used for production changes. Usage is recomended for SVN fluent devs only. Here are some quick notes:
- Server at: https://ooo-svn.osuosl.org (world readable, restricted write). To get access write an email to KaiB
- Trunk is manually migrated from CVS for each milestone.
- Create you CWS's branches in /users/foo/my-cws-name by copying the trunk milestone you want
- Develop as usual with SVN resynching to trunk if neccessary. Do QA on the SVN branch.
- Once your branch passes QA create a diff and send in to Sun RE. Please provide EIS style meta data like issues fixed etc. This will get integrated into the main CVS.
- It is smart to do the branching remotely and then re-use your working copy with svn switch.
- Enjoy!
Sources of information on SVN:
Why migrate? Tagging/branching all 200 000 files using SVN takes <1 second
Subversion provides fast built in operations for the most common tasks that have previously been handled by the CWS/EIS infrastructure. Many common operations (branch/merge into QA) could probably be done in second instead of hours. There are also issues with the current hardware architecture and it's unsuitability for our exising model of work:
See also:
Switching a build tree to svn
If you have an existing (CVS) checkout, then it will be possible to download a -svn archive containing all the .svn directories necessary, then run [svc-pack] (renamed to svn-unpack) in the root of your checkout. This will setup & clean the relevant .svn directories, and allow you to start using your tree vs svn. NB. you need to ensure the -svn archive downloade exactly matches the tree you are using.
People
A list of people involved in this project :
- David Anderson
- Maxime Petazzoni
- KaiB
- Jens-Heiner Rechtien
- St
- Martin Hollmichel
- ... please fill in.
Data on large migrations
A lot of other "big" F/OSS projects already switched to Subversion. This list collects information on these projects and on how their migration went. Feel free to add any project and intell that could be of some interest (big repository, complex tree, ...).
OpenOffice.org
CVS Repository
- Size: 18 GiB as 18. Oct. 2006
- Revisions: ~482000 for a full import
- Repository size: est, 50 GiB for full import
- Conversion time: about 1 week on a Ultra 20 (2.2 GHz Opteron)
Note: We'll certainly drop most old integrated/canceled/deleted CWS branches and tags. This reduces the number of import revisions and the size of the repository
KDE
- Original CVS repos size: 19 GB
- SVN repos size: over 14 GB
- Revisions : 499 367
- Conversion time: 38h
- Conversion machine: Unknown (see notes)
- Production setup: Developer server svn.kde.org, anon server anonsvn.kde.org mirrored immediately (hook scripts is my guess)
- Developers: Stephan Kulow, Oswald Buddenhagen
The conversion machine is a mystery. The devs were not able to share it, but their first estimates were that the conversion would take a week. Then they aquired this strange machine with a lot of puff (rumors of 1TB of memory on the machine). They reupdated their estimate to 12 hours but the actual running time was 38h. What platforms does cvs2svn run on? We should try to access some heavy duty hardware for doing the conversion?
Gcc : 9GB
- Size : 9 GB
- Revisions : ?
GCC had done a large migration recently. Again, need to get in touch and pick their brains on it. --David Anderson
Apache Software Foundation
- Size : 10 GB
- Revisions : 350 000+
The ASF is now using exclusively Subversion. No CVS modules left. Check it out at [1] --Maxime Petazzoni
GNOME
- Large repository with several branches
- Complex migration
- Would have been completed by now, but for [some frustrating migration issues]
- Migration planned and will occur
SourceForge
- Recently offered SVN, and many developers have switched to it
- Painless, quick migration, and growing participation
Xfce
- All modules in SVN, including goodies [SVN at Xfce]
- Fair-size repository
Debian
- Most of the Debian-Installer has switched to SVN
- Many individual programs have also switched
Mailman
- All SVN
- Fair-sized repository for a single program
- Quite complex structure, with major changes made more easily via SVN
Inkscape
- All SVN
- This project values efficiency and cooperation, so its choice of SVN is complimentary
Note: as a free-software translator, I work in a variety of different projects, and I have noticed the growing move to SVN. From my own experience, I now give a project more priority if it uses SVN, because it makes it easier for me to manage my files. I imagine a lot of participants feel that way now. :)
Questions
Question: MartinK: CWS Resyncs and Integrations produce one commit/a different message for every file that is resynced. cvs2svn will produce one revision for each resynced file, should such commits be grouped together into one svn revision per resync/integration?
Question: MartinK: CWS tools move branch tags. Is cvs2svn well-tested with repositories that do this? I read only the cvs2svn design-notes and now I'm not sure if the detection of branch opening and closing svn revisions can handle that well.
KaiB: based on our test run cvs2svn does get confused with branches and tags that are intermingled. I hacked the script to basically treat all CWS's as branches. The current CWS tooling system is pretty non-standard (mixing branch and tags which is a no-no in CVS) but SVN might actually support this behaviour a bit better than CVS.
Hr Actually the CWS tooling does not mix branches with tags. There is a logical association between an anchor tag and a branch, true, but as far as CVS/SVN is affected these are independent. But there seem to be a few broken branches/tags out there.
Question: MartinK: there are a few files in OOo CVS that have revisions which are on a branch for which the branch tag was removed (?!?). Will these revisions be dropped?
Hr Yes.
KaiB: Could you give examples? I can look at the produced SVN tree and see how it looks?
Test repository svn.openoffice.org
svn.openoffice.org is available now. use http://svn.openoffice.org/svn/svn/trunk to access it.
Issues
- configuration for squid proxy has to be enhanced if squid is used (see Subversion Faq).
- svn log is not working:
- ~/svn-test/svn/sfx2/source/appl> svn log makefile.mk svn: REPORT request failed on '/svn/svn/!svn/bc/270/trunk/sfx2/source/appl/makefile.mk'svn: REPORT of /svn/svn/!svn/bc/270/trunk/sfx2/source/appl/makefile.mk': 504 Gateway Time-out (http://svn.openoffice.org)
- svn.openoffice.org is holding only a small subset of the exiting CVS repository
- browing the repository [2] is sometimes extremly slow (4-5 seconds at it's best, waiting minutes for a directory change occur quite often)
- Ctrl-C resistance, seems to be svn specific, but with svn.openoffice.org it's almost impossible to interrupt.

