I have been optimizing our continuous integration builds, and the remaining bottleneck seems to be the following ClearCase commands:
cleartool.exe mklbtype -nc -ordinary BUILD_ApplicationWorkspace_1.0.0.0@vob_example
For a view with 1800 files, this is taking over 6 minutes to complete. Our MSBuild task takes half that. I am guessing the bulk of the bottleneck is network bandwidth but also how we are labeling the files used in this build.
Baed on this, I have questions:
- Are we efficiently labeling the source code files, or is there a more efficient command we can run?
- How can I get better metrics to understand where this ClearCase command is spending the bulk of its time?
- Do prior labels slow ClearCase labeling down?
- Related, does ClearCase have anything similar to Git Sub-modules or svn:externals? Currently we are creating a view of everything, including dependencies, before we do the build.
Thanks for your help.
cleartool mklbtypeshouldn’t take that long: it is about creating the type of the label, not about applying it on each and every of your file.If anything,
mklabelshould takes time.Applying the UCM methodology (as opposed to your current “Base ClearCase” usage) might help in that:
svn:external, as mentioned here and in “Why are git submodules incompatible with svn externals?“.But if you are stuck with Base ClearCase, you are stuck with labelling everything, and one venue for optimization would be to label only a subset of those files.