tags:

views:

320

answers:

3

We have a patch model where we're intending on using cset.pl -findmerge <activity> to selectively merge cumulative activities to a patch stream (integration stream to integration stream). Note that we're using a single stream model; although support for teams working with their own dev stream would be supported (i.e. when they join a project they would be working with the integration by default).

However there's the issue of activity dependencies we're trying to solve.

So say you have integration stream A,

file a.txt    
-> Change 1 (baselined ReleaseA)-> Change 2 -> Change 3  

fileb.txt  
-> Change 1 (baselined ReleaseA)-> Change 2

an integration stream B and the config. manager decides they want to include "Change 3" in a new patch (patch integration stream - integration stream C).
They perform a cset.pl fetchmerge against Change 3 (which includes changes for Change 2).
Change 2 for fileb does not get picked up so the issue is identifying these activity dependencies.

Anyone have any ideas?

A: 

If Change3 is a rebase/deliver activity you can use

%ct lsact -contrib Change3
to get a list of contributing activities and then traverse any of the rebase/deliver activites listed as contributing activities to trace if any of them has Change2 as the contributing activity.

Also assuming that the foundation baseline for the patch stream is the one used for RelaseA,shouldn't you need to list activities from Change1 onwards when you do the merge ?

i.e shouldn't your findmerge invocation be something like

%findmerge ... Change2,Change3 -fcsets ...

sateesh
Thanks for the quick reply, but I should have specified that the streams were integration streams. so those commands don't seem to work
JK
the command `ct lsact -contrib <activity>` would work immaterial of whether the stream is integration stream or not. Probably you didn't specify the PVOB. The invocation should be something like:%cleartool lsact -contrib activity@PVOB.
sateesh
Says "error: activity <activity> is not a deliver or rebase integration activity
JK
Note the problem refers to essentially a single stream model and so deliver and rebase are irrelevant. Even with the multi stream model -contrib only provides activities associated with a single deliver operation, and not the dependencies between a particular baseline(branch point) and an activity
JK
A: 

Note (in addition to sateesh's answer), a deliver -act Chaange3 (instead of a findmerge) would list Change2 and Change1 as activities to include in your deliver.
It would pick up on those dependent activities, probably following an algorithm close to the one described by sateesh.

See "About activity dependencies in the deliver operation"

alt text

VonC
Thanks for the quick reply, but I'll just edit the question again.
JK
A: 

Had to use a variety of cctool commands to view current version in view and pushed it into a script to get a list of activity dependencies

JK