Migrating to Subversion
Migrating from CVS to Subversion is an ASF Infrastructure desired event for Jakarta.
See the Version Control page for usage details.
See the cvs2svn page for conversion details.
Plan
- Every sub-project of Jakarta gets a subdirectory in the Jakarta SVN repo.
- They use a tags/trunk/branches structure within said subdirectory, though they could further componentise and then use the tags/trunk/branches structure if it fits them better.
- The CVS repositories of "dead" projects are not targeted for immediate migration (e.g. jakarta-site).
Positives
Subversion provides many advantages over CVS, smoothing out its "excessive character" while providing the same approximate level of functionality, and a much better designed platform on which to develop tools. Sampling of improvements over CVS:
- move files within the repository and maintain the history
- delete directories (which are treated no different than any other versioned resource)
- treat groups of files in one commit as a single transaction (change set-like)
- significantly faster branching and tagging
Another major benefit is that administration of Subversion simplifies the life of the Infrastructure team. UNIX accounts need not be created for each user; user accounts are instead maintained in htaccess files, with authentication occuring over SSL.
Questions
- Is the community's toolset fully supported?
Negatives
The tagging and branching model varies from that of CVS, and is only a "cheap" directory copy. Tags which are more than a simple directory tree get trickier. ie) tagging without tagging all the files, or tagging plus a set of files in a sibling directory. The trick of doing 'cvs status -v build.xml' to list known tags for a module is no longer available as well. Instead, the "tags/" directory in the repository may be browsed using a 'svn ls' or a web browser.
- Obliteration of files which should have never made their way into the VC repository (e.g. files with a non-ASF allowed license) can currently only be accomplished through a dump/edit/load of the entire repository by the Infrastructure team (resulting in a repository-wide maintenance window).
Migration Plan
To do
- Cactus - Vincent Massol. Renudged.
- JMeter - Nudge sent.
- POI - (In test repo)
Tapestry - Nudged. Is Subclipse good enough?
Archivals
- Alexandria - Archive. Will do this last.
- jakarta-site
- all the java.apache.org modules
DONE
- BCEL - Henri Yandell
- BSF - (done)
Commons - Martin Cooper + Tim O'Brien - Conversion Instructions
- ECS - Robert Burell Donkin + Henri Yandell. jakarta-ecs and jakarta-ecs2.
HiveMind - (done)
- JCS - (done)
- Lucene - Erik Hatcher
- ORO - Daniel Savarese
- Regexp - Henri Yandell
Site2 - Tim O'Brien + Henri Yandell - Site2_Conversion_Instructions
- Slide - Stefan Lützkendorf.
Taglibs - Henri Yandell using Adapted Commons Scripts Test Repo scripts.tgz(200k)
- Turbine - (done)
- Velocity - Daniel Rall