Tuesday, December 02, 2008

Moving and Renaming in Jazz SCM

My current project has begun by us inheriting an old code base which we need to support.  We want to take this, re-structure it (literally move the contained code projects around and rename the directories which contain them), add build scripts and other meta information.  We don't want to change the inherited source or config data at all.

Ideally we want all this to be tracked, so that if, in the future, we want to know if we have changed something from what we inherited, we can do a simple "compare" between two snapshots and see what had happened in the interim.

It turns out Jazz SCM provides some really nice move and rename support to give us just what we need.  Rather than just doing deletes and adds (like Subversion) it actually knows what you've done.   It also seems to work moving things across components.

This has meant we can create a new workspace (called, for example, "inherited codebase") and within it create a component to house the codebase, and then additional ones which break down your code as desired (e.g. one per ecplise project).  We then added the code to the "inherited codebase" comopnent, checked in, snapshotted, and then started our reorganisation.

Jazz SCM - ideal for our purposes! (Thanks to Andy McGoldrick for the tip off)