views:

102

answers:

2

Hi,

I need to set up a continuous integration system. We use ClearCase version control and only snapshot views due to platform restrictions. I have tried setting up Hudson and Luntbuild. They both show the same behaviour. In a view, we have lots of libraries that are used for build but are strictly read-only. The CI system executes cleartool lshistory and finds a change in the VCS. After that, it executes cleartool setcs, which causes update of the view. This can take about half an hour, which is very undesirable for CI. Why wouldn't it update only the changed elements, which were previously obtained by cleartool lshistory? Is there a CI system that can do this?

A: 

The update of a snapshot view with a lots of elements can takes time.

That is why we are using several view in our Hudson CI.

  • One with the minimum amount of elements, view which is monitored by Hudson and updated if a VCS change is detected.
  • One with the common stuff which does not change that often (if it changes, we will declenche the Hudson Job manually)

Other solution is, especially for the first view, to use a dynamic view (and skip the update loading times)

VonC
Thank you for your answer! I was thinking about making two views, but I can't really quite figure out how to preserve the existing directory structure in the project. A view is created in the separate directory, so all the paths to read-only includes and libraries in the project will have to be changed. Developers will also have to work with the project containing the new directory structure. The only idea how to keep the old directory structure on the server is to use symbolic links, though I'm not sure if it's a good idea with snapshot views. How do you manage this?
Yulia Rogovaya
@Yulia: creating two views is only for the CI setup. Developers can go on using one view. But this kind of configuration is a good opportunity to ensure no absolute path is used in project settings, only path with a variable in it, allowing to infer the right path from the variable value.
VonC
Thanks! Using a variable in paths is certainly a way to go. I still wonder, why CI systems update not only the changed elements (they are known by previously calling cleartool lshistory), but the whole view. What do you think?
Yulia Rogovaya
@Yulia: a '`cleartool setcs -stream`' will always trigger a *full* update of a snapshot view. That is why a dynamic view is much more practical for this kind of configuration (config spec modification)
VonC
A: 

Yulia,

You may check out our Parabuild - it may work better for you. If not, we will be happy to work with you to resolve any performance issues.

Slava Imeshev
What is the level of ClearCase integration with Parabuild? (snap and dynamic view? UCM views?)
VonC
Parabuild supports snapshot views and UCM through UCM snapshot views.Dynamic views are not very good for CI. They are fast but you cannot sync to a particular change.
Slava Imeshev