It's all about the answers!

Ask a question

RTC Merging Approach

Amit Kumar (19314) | asked May 10 '17, 6:13 a.m.

Hi Team,

Having a same component under different stream is mandatory to do auto-merge in RTC ?
This we require to implement parallel Developments , so that Different Teams can commit code separately and at the time of delivering same on Production, we can merge the latest code with the running Stream ( which is already on Production ) . Till now, I m doing it manually by importing the projects from latest and delivering same into running stream .

I googled and found the info about changing the flow targets , but all were suggesting to have Stream and Workspace, No info about components.
So,if I have two streams , S1 and S2 having different components  C1 and C2 respectively, where C1 component is added to S1 only and C2 component is added to S2 only,  Can auto-merge be done in RTC (by changing flow targets) ? OR any better approach to do same ? Thanks

Accepted answer

permanent link
Ralph Schoon (63.1k33646) | answered May 10 '17, 7:46 a.m.

 Please read some of the articles 


Provide a version number in questions as there are changes.

In general merge only makes sense in the context of conflicting differences.
If there are no conflicting changes, there is no merge. Changes are on component level. If streams have no overlap at the component level, there is never a conflict and you can just deliver/accept.

In RTC you use repository workspaces to do changes. You check in changes into the workspace. You deliver changes into the stream and you accept incoming changes. 

You use flow targets to integrate across streams, doing accept, merge, deliver of merged changes. Conflicts have to be resolved on repository workspace level. It is possible to deliver from one stream to another, if there are no changes.
Assuming you don't change code in production there should be no reason for a conflict, so no merge needed.

Amit Kumar selected this answer as the correct answer

2 other answers

permanent link
Geoffrey Clemm (30.1k33035) | answered May 10 '17, 2:44 p.m.
edited May 10 '17, 2:56 p.m.

In general, merging (manual or automatic) is only supported between two versions of the same artifact in the same component.   This is true for any merge (whether between two streams, or between a change-set and a stream).

In particular, if two teams are working in different streams on changes that should be merged, they should be working in the same component, not in different components.  To fix your currently (broken) situation, you need to pick one of the two components as the "good" component, and then import the versions from that other component into the "good" component.  The import would be done by creating an "import" workspace (that contains the initial baseline of the good components and the latest state of the bad components), load the import workspace into a sandbox, remove the good component files/directories, copy the bad component files/directories into the good component, and then check everything in.   Once all the bad component files/directories have been checked in to the good components, you can remove the bad components from the import workspace, and then "replace" the stream that had the bad components with the configuration of the import workspace.

Note: Since you are just adding additional information to the same question that you posted a couple of days ago  (, it is best to either edit that previous question or add a comment to it, rather than asking the same question twice.   I've added a comment to that previous question forwarding folks to this thread.

permanent link
Amit Kumar (19314) | answered Sep 10 '17, 6:16 p.m.

Can these merge be automated ? I mean, any scripts which we can schedule which can change the flow targets and do auto merge at the scheduled time? If so, then how conflicts which required manual merge will be taken care ?

Your answer

Register or to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.