Question

This should in theory be quite simple, i.e. merge the changes from a specific UCM activity from one stream to another.

I had thought that I might just be able to use the Deliver command in the GUI and then select just the required activity to deliver, but it seems that the target stream is set to not allow deliveries from other streams.

From searching the documentation it seems that I might instead be able to do this via the command line using the findmerge tool, but it's not at all clear from the rather sparse documentation how you do this. It seems like it might be a two stage process, i.e. first generate a "changeset", then merge that changeset ? Also I'd like to do the merge manually for each affected file, so I would need the graphical merge tool to be invoked if possible.

If someone can give me an example findmerge + whatever command line for merging an activity that would be a great start. Also any other suggestions for how to merge an activity would be welcome.

Was it helpful?

Solution

First, deliver in UCM are (usually) made to deliver all activities.
You can try to deliver only a subset, but you quickly comes to gripe with "timeline", which are linked artificially all the activities together, forcing you at the next deliver to deliver them (all).

findmerge tool, but it's not at all clear from the rather sparse documentation how you do this. It seems like it might be a two stage process, i.e. first generate a "changeset" then merge that changeset ?

cleartool findmerge activity: is the non-UCM way to merge all versions referenced by an activity from a stream (a branch actually here) to another branch.

ct findmerge activity:A1@\pvob activity:A3@\pvob -fcsets -c "report for delivery" -merge -gmerge

See "ClearCase : Making new baseline with old baseline activities" for more on timeline (activity dependencies) and findmerge.

This is documented in the technote swg21267316:

WORKAROUND:

From the target view:

Set to an activity (setact) or create a new activity (mkact). This activity is just like the Integration activity normally used/created during a deliver. It allows you to:

  • check the files in after the merge.
  • Run a findmerge using the following format:
    cleartool findmerge activity-selector ... -fcsets [-gmerge | -merge]
  • Merge files as needed
  • Checkin files that were merged

Example:

M:\int\cvob1>cleartool findmerge activity:A@\pvob -fcsets -gmerge
Needs Merge "M:\int\cvob1\old folder\new name" [to \main\int\7 from \main\int\de
v\2 base \main\int\dev\1]
Checkout comments for this and any additional elements:
deliver dependencies work around
.
Checked out "M:\int\cvob1\old folder\new name" from version "\main\int\7".
  Attached activities:
    activity:int-merge@\pvob  "int-merge" 
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top