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?
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
Note (in addition to sateesh's answer), a
deliver -act Chaange3
(instead of a findmerge) would listChange2
andChange1
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 http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m0/topic/com.ibm.rational.clearcase.hlp.doc/cc_main/images/deliver_depnd.gif
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 fromChange1
onwards when you do the merge ?i.e shouldn't your findmerge invocation be something like
%findmerge ... Change2,Change3 -fcsets ...