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