Migrating to Subversion

Migrating from CVS to Subversion is an ASF Infrastructure desired event for Jakarta.

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
  • No labels