2

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:

  1. Are we efficiently labeling the source code files, or is there a more efficient command we can run?
  2. How can I get better metrics to understand where this ClearCase command is spending the bulk of its time?
  3. Do prior labels slow ClearCase labeling down?
  4. 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.

John Zabroski
  • 2,212
  • 2
  • 28
  • 54

1 Answers1

1

cleartool mklbtype shouldn'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, mklabel should takes time.

Applying the UCM methodology (as opposed to your current "Base ClearCase" usage) might help in that:

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.

Community
  • 1
  • 1
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Thank you for yet another reason why I hate this tool - basic features are impossible to use in the basic version of the product. My Release Manager suggested that for CI Builds we don't bother with labeling until we reach the user acceptance testing phase of our development cycle. Thoughts? – John Zabroski Mar 28 '12 at 12:48
  • Or, do you have a suggestion for only labeling a subset of those files intelligently? – John Zabroski Mar 28 '12 at 13:01
  • @JohnZabroski I would agree with your Release Manager, and simply record the timestamps at which your are triggering your build. That would allow you, if needed, to get back the code at that specific time through **time-based selection rule**: see http://stackoverflow.com/questions/368086/clearcase-time-and-query/370008#370008 or http://stackoverflow.com/questions/634509/clearcase-loading-older-version-of-a-specific-directory/635282#635282 as examples. – VonC Mar 28 '12 at 13:02