It's all about the answers!

Ask a question

Merging two streams


Qaiser Islam (31297074) | asked Apr 19 '10, 4:57 a.m.
hi,

in my case we have one project with 2 teams both team working on same source code files but different modules.
We created 2 stream and associated with the respective teams

Stream 1 is owned by Team1
Stream 2 is owned by Team2

but at some later stages they want to merge both the streams.

what is the better way to do this? any thoughts

Regards,
Qaiser

7 answers



permanent link
Tim Mok (6.6k38) | answered Apr 19 '10, 11:08 a.m.
JAZZ DEVELOPER
hi,

in my case we have one project with 2 teams both team working on same source code files but different modules.
We created 2 stream and associated with the respective teams

Stream 1 is owned by Team1
Stream 2 is owned by Team2

but at some later stages they want to merge both the streams.

what is the better way to do this? any thoughts

Regards,
Qaiser


You can deliver changes from Stream 1 to Stream 2 and vice versa to keep each other in sync. The flow target for a workspace can be changed to the other stream so you can deliver any changes.

A better workflow would be creating a third stream for integration. When Team 1 has stable changes to release for Team 2 to consume, one of the Team 1 members can change flow targets to the integration stream and deliver the changes. Then a member of Team 2 can change flow targets to integration and accept those changes and deliver them to Team 2's stream. From there, Team 2 can accept the changes into their own workspaces.

The person in charge of accepting changes from integration can also set up a separate repository workspace and only track the workspace (ie. don't load any components). This allows the developer to accept/deliver change sets from/to the integration stream without loading any content.

permanent link
Geoffrey Clemm (30.1k33035) | answered Apr 19 '10, 11:12 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
In order to merge two streams:
- switch the flow target of your workspace on one stream to be the other
stream
- accept all incoming changes from the other stream
- resolve any branch conflicts
- if you want to keep using the other stream, deliver changes to the
other stream
- switch the flow target of your workspace back to the original stream
- deliver changes to the original stream

Cheers,
Geoff

qaiserislam wrote:
hi,

in my case we have one project with 2 teams both team working on same
source code files but different modules.
We created 2 stream and associated with the respective teams

Stream 1 is owned by Team1
Stream 2 is owned by Team2

but at some later stages they want to merge both the streams.

what is the better way to do this? any thoughts

Regards,
Qaiser

permanent link
Qaiser Islam (31297074) | answered Apr 20 '10, 8:02 a.m.
In order to merge two streams:
- switch the flow target of your workspace on one stream to be the other
stream
- accept all incoming changes from the other stream
- resolve any branch conflicts
- if you want to keep using the other stream, deliver changes to the
other stream
- switch the flow target of your workspace back to the original stream
- deliver changes to the original stream

Cheers,
Geoff


hi,
i tried the steps you described but whenever i change the workflow of my workspace to other stream and deliver the changes; new component is created in target stream instead of merging in existing component. i even tried creating the component with same name in both streams but same happened i.e. new component with same name created

regards,
Qaiser

permanent link
Geoffrey Clemm (30.1k33035) | answered Apr 20 '10, 8:13 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi Tim,

What is the advantage of having a third integration stream? I usually
advocate "use the smallest number of constructs that will get the job
done", so I always look for a compelling reason for adding a new stream.

Similarly, if the two streams are to be "merged", then I usually
advocate just having a developer use a development workspace to do the
merge, because they will need to get the files loaded:
- if there are any conflicts
- so they can get an IDE build to verify the merge builds

so using an extra workspace would often require loading another file area.

Cheers,
Geoff

tmok wrote:
qaiserislamwrote:
hi,
in my case we have one project with 2 teams both team working on
same source code files but different modules.
We created 2 stream and associated with the respective teams

Stream 1 is owned by Team1
Stream 2 is owned by Team2

but at some later stages they want to merge both the streams.

what is the better way to do this? any thoughts

Regards,
Qaiser

You can deliver changes from Stream 1 to Stream 2 and vice versa to
keep each other in sync. The flow target for a workspace can be
changed to the other stream so you can deliver any changes.

A better workflow would be creating a third stream for integration.
When Team 1 has stable changes to release for Team 2 to consume, one
of the Team 1 members can change flow targets to the integration
stream and deliver the changes. Then a member of Team 2 can change
flow targets to integration and accept those changes and deliver them
to Team 2's stream. From there, Team 2 can accept the changes into
their own workspaces.

The person in charge of accepting changes from integration can also
set up a separate repository workspace and only track the workspace
(ie. don't load any components). This allows the developer to
accept/deliver change sets from/to the integration stream without
loading any content.

permanent link
Jean-Michel Lemieux (2.5k11) | answered Apr 20 '10, 8:24 a.m.
JAZZ DEVELOPER
It has to be the "same" component in both streams not just one with similar/same names. Start with one stream and two components in it. Then duplicate that stream (without creating new components). Then create a repository workspace from that second stream (again without creating new components, just clone the ones from the stream, which is the default behavior).

At this point you'll have 2 streams and 1 repo workspace, all with two components in them. Now follow the instructions Geoff provided and you should be able to merge/flow changes.

permanent link
Qaiser Islam (31297074) | answered Apr 20 '10, 9:49 a.m.
It has to be the "same" component in both streams not just one with similar/same names. Start with one stream and two components in it. Then duplicate that stream (without creating new components). Then create a repository workspace from that second stream (again without creating new components, just clone the ones from the stream, which is the default behavior).

At this point you'll have 2 streams and 1 repo workspace, all with two components in them. Now follow the instructions Geoff provided and you should be able to merge/flow changes.


it worked thanks for all your support :)

permanent link
Tim Mok (6.6k38) | answered Apr 20 '10, 10:31 a.m.
JAZZ DEVELOPER
Oops, it's about merging the streams. I got confused with merging changes from the two streams. I thought it would be easier if more streams are added later and changes have to be merged together for a build.

Hi Tim,

What is the advantage of having a third integration stream? I usually
advocate "use the smallest number of constructs that will get the job
done", so I always look for a compelling reason for adding a new stream.

Similarly, if the two streams are to be "merged", then I usually
advocate just having a developer use a development workspace to do the
merge, because they will need to get the files loaded:
- if there are any conflicts
- so they can get an IDE build to verify the merge builds

so using an extra workspace would often require loading another file area.

Cheers,
Geoff

tmok wrote:
qaiserislamwrote:
hi,
in my case we have one project with 2 teams both team working on
same source code files but different modules.
We created 2 stream and associated with the respective teams

Stream 1 is owned by Team1
Stream 2 is owned by Team2

but at some later stages they want to merge both the streams.

what is the better way to do this? any thoughts

Regards,
Qaiser

You can deliver changes from Stream 1 to Stream 2 and vice versa to
keep each other in sync. The flow target for a workspace can be
changed to the other stream so you can deliver any changes.

A better workflow would be creating a third stream for integration.
When Team 1 has stable changes to release for Team 2 to consume, one
of the Team 1 members can change flow targets to the integration
stream and deliver the changes. Then a member of Team 2 can change
flow targets to integration and accept those changes and deliver them
to Team 2's stream. From there, Team 2 can accept the changes into
their own workspaces.

The person in charge of accepting changes from integration can also
set up a separate repository workspace and only track the workspace
(ie. don't load any components). This allows the developer to
accept/deliver change sets from/to the integration stream without
loading any content.

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.