There is no equivalent in ClearCase to Subversion's svn:externals property. The closest you can get is using ClearCase's internal symbolic links via the cleartool ln -s command. If you're linking files, you can try using hard links, but they can cause user confusion.
I've had problems with svn:externals and have stopped using them. It is way too easy to specify an actively changing HEAD as the svn:externals link, and then forget about that when you create a tag. That can cause your tagged version to change without your knowledge.
In order to get around this you should only tag to a specified revision AND make sure you use revision pinning since a later revision might move or delete the directory tree you were linking to. (There's a debate whether a link to the tags directory counts as a specified version, or whether you really need to use -r).
A better way is to treat directories from subcomponents your linking to via things like svn:exterals as actual releases and store them on some sort of release server. When you do your build of your application, you copy the needed files from the release server to your project much the way Maven and Ant/Ivy do. If your release is really just source code, you can store it on your release server as a tarball.
The big advantage is that this method is now independent of special features in your version control system.
No comments:
Post a Comment