The best strategy when migrating from ClearCase to SVN

clearcasemigrationsvn

We are considering moving from ClearCase to Subversion. The project has been there for a while (7 years) and there are three "major" versions (branches) that we actively support, plus some occasional fixes in older releases. The project is fairly large – around 2 mln lines of java code.

I am curious if there is someone that has done similar migration.

  • Will SVN be able to handle such a large project?
  • Does it make sense to migrate all historical versions/branches? Are the tools that could do it selectively?
  • How long will the migration process take for such a project and what is the effective way of working then the migration is in progress?

Best Answer

For having made several migrations of this kind, I would argue that:

  • you do not need to import all the history of the ClearCase versions into SVN. Most of the time (for my experience), only the labeled versions (the one which are applied consistently on all the files of a given set) are needed, unless you have a real need for a fine-grained history revision examen.

  • you need to think about reorganization during a migration: what do you import ?, what do you leave ?, and do you want the SVN content reflect exactly the structure of the files as stored in the ClearCase VOB ? Sometime, such migrations are the occasion to rethink some of those files organization (usually through simple renaming rules for certain directories).

  • the migration is quicker in the ClearCase 2 SVN way, since SVN is repository-centric and commit a set of files, while ClearCase is file-centric and commits file-by-file (much sloooower)

  • if the set of files to import is clearly identified, the migration process can be repeated multiple times over, which means you can go on working within ClearCase while the first (large) import is taking place, then put a Baseline (UCM label) on your code, and re-import only the delta, effectively ending the migration process.

Related Topic