Parallel Development
![]()
There are two ways of working with components in RTC:
Firstly, We have two development lines Dev and R09 running in parallel. They are both using the same components: C1 and C2. As changes are made to these components on both development lines, we end up with different baselines of the same component. The second way would be if we still have two development lines Dev and R09 running in parallel. However we create one component C1 for Dev, and the same component C1 for R09. Likewise for C2. Independent work is then carried out on each component. So my question is: What are the implications of each way of working? What is lost or gained in choosing one or the other? |
4 answers
![]()
Geoffrey Clemm (30.1k●3●30●35)
| answered Aug 20 '09, 7:58 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
If you ever think you might want to merge files between these two
components(even a some distant point in the future), they should be one component, not two. Cheers, Geoff GeeTee wrote: There are two ways of working with components in RTC: |
![]() If you ever think you might want to merge files between these two |
![]()
MartinBailey wrote:
Yes - but why ? What does having them in the same component allow If you ever want to merge the changes from one stream into the other, then using one component will make that easier. You might want to merge changes from one stream into another if one of the streams is for maintenance releases and the other stream is for the next major release. In that case it is common to merge the maintenance stream into the major release stream at some point, so that all the bug fixes get into the next major release. If you used one component, RTC will help you with the merging. It will identify all the change sets that need to be merged and will bring up a merge editor when there are conflicts. If you used two components, RTC won't help you at all with the merge. You will have to identify the changes that need to be merged and will have to manually make those changes in the target stream. |
![]()
Geoffrey Clemm (30.1k●3●30●35)
| answered Aug 25 '09, 10:48 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
To be very explicit, if two streams share the same component, and then
changes to the same file have been made in both streams, when you merge one stream to the other, RTC will detect those parallel changes, and give you 3-way merge support to make the merge easy. If instead you make a copy of the code in a second component, and then merge the streams, RTC has no way of noticing whether or not a file has been changed in parallel, and even if you can discover that manually, the best it can do is a "two way merge", which cannot tell you which side has the "new changes" and which side has the "original code" (which is what a 3-way merge does for you). Cheers, Geoff David Olsen wrote: MartinBailey wrote: |
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.