It's all about the answers!

Ask a question

why do unloaded components have pending updates in RTC


john norris (20723442) | asked Aug 09 '12, 1:37 a.m.

Here is the situation. Stream has several components. Workspace1 includes all of the components. Workspace2 only includes a subset. Both WS flow from / to the stream.

When I make changes to a component in WS1 that is missing in WS2 and deliver, I get updates notification in WS2 and acceptting those it adds the missing component. Which seems strange.

I have also tried removing a component from a WS and that also affects the other WS.

I am missing an action and if the above is correct, can anyone explain the thinking behind it. Is it because the stream has all of the components?

Regards,

John

Accepted answer


permanent link
David Olsen (5237) | answered Aug 10 '12, 12:33 a.m.
JAZZ DEVELOPER
By default, RTC SCM will synchronize the components, trying to keep the same components in the stream and in the workspaces that flow with that stream.  If you add a component to your workspace, you can deliver that change to the stream, and the new component can then be accepted into other workspaces that flow with the stream.  Likewise if you remove a component from your workspace, you can deliver that change to the stream, and others can accept that removal into their workspaces.  This is the behavior that you are seeing, and it is expected.

But there is a way to override that behavior and to have workspaces with only a subset of the stream's components.  If you want Workspace2 to have fewer components than the stream, then open the workspace definition, go to the flow targets section at the bottom of the editor, click on your flow target, click the Edit button, select "Flow only components checked below", and select only the components that you want to have in the workspace.  Then you can safely remove the other components from the workspace without that removal being propagated to the stream and to other people's workspaces.

-- David Olsen, IBM Rational, Jazz Process Team
john norris selected this answer as the correct answer

Comments
Gavin Bayfield commented Aug 10 '12, 3:31 a.m. | edited Aug 12 '12, 4:47 a.m.

Thanks David, your last paragraph has identified the configuration change to solve an RTC3 build issue we have - with a dedicated Build Machine Workspace PER Component for a Development Stream, I was seeing RTC continually file-transfer & update (on Pending Changes) ALL components to ALL Workspace, despite me listing only the target Component in the Component List on each Workspace Definition - The implication from the Workflow Definition is only this single component should then be "flowed" but this doesn't work that way Until, as you point out, we also edit the Flow Target Stream to also only list the same matching single component...That's been a great help thankyou !



john norris commented Aug 10 '12, 8:50 a.m.

David, thank you for your answer. That's great. Regards, John

One other answer



permanent link
Jorge Diaz (8664234) | answered Aug 09 '12, 6:57 a.m.
JAZZ DEVELOPER
Hi John,

this is because your stream has various components and it's the default Flow Target for your WS. For your WS (let's say WS1), the additional components is a difference in the configuration with its target stream: that's why you are seeing the incoming change to add the components.

If you remove your component in a WS once you deliver this change, the other WS ("WS2") will be affected because the component no more exists in the flow target that both share.

Hope this helps.

Regards,

Jorge.

Comments
john norris commented Aug 09 '12, 8:38 a.m. | edited Aug 12 '12, 4:45 a.m.

Hi Jorge,
thank you for your answer. I would just like to make sure I have understood what you are saying.
When several WS share the same flow target stream which uses eg 4 components, then all of WS must use those  4 components?  If a component is removed from one of the WS then this is reflected in the stream which is passed on to the remaining WS?
And so when a WS changes files in a component, those changes will be passed to the stream (expected) and then on to the other WS, even if that causes a deliberately missing component to be added back to the WS.
Is this correct?
I assumed that a stream used a number of components and workspaces attached to that stream had the choice of which to use (all or some).
Finally is this also true of stream to stream relationships where removing a component at the WS or stream end would affect the entire chain?
Regards,
John


Jorge Diaz commented Aug 09 '12, 10:14 a.m. | edited Aug 12 '12, 4:46 a.m.
JAZZ DEVELOPER

Hi John,

let me try to clarify to your points:

 - WS are not forced to load all the components from the stream they are flowing changes. Just wanted to explain to you why you, by default, see them in your pending changes. Actually you can hide this from your pending changes view and you won't be confused by this anymore. I think a good article for you to check is the following: https://jazz.net/library/article/649

- A stream allows you to share changes between developers. Removing a component from your workspace (removing, not unloading), is another type of change you can flow. If you just want no more that component in your WS but in the stream, you then will unload it's contents from the WS.

Another interesting article you may want to check is: https://jazz.net/library/article/599

Regards,

Jorge.

Your answer


Register or to post your answer.