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