avoid delivering the whole changeset to some stream

How can I prevent myself from delivering the whole changes of an already delivered changeset into stream A to stream B ?
I mean, let's imagine stream A represents a development environment and Stream B represents a productive environment.
Someone has collected a group of changes and delivered into a changeset to Stream A,
Now I want to accept those changes but only deliver some of them to stream B
2 answers

- create a workspace on stream B, and load it.
- change the flow target of the workspace to be stream A.
- in the Pending Changes view, in the Incoming Changes folder, right click on the change set, and select New->Patch
- change the flow target back to stream B
- select Project -> Apply_Patch
- In the Pending Changes view, remove the changes from the patch that you do not want.
- right click on the Patch, and select "auto-resolve"
- review the changes, and then check them in.
- deliver the resulting change set to stream B.
Comments

Thank you so much Geoffrey I'll try this strategy and I'll let you know

since the changeset is already delivered into StreamA, when I create a new repository workspace from StreamA I have this changeset already incorporated,
How can I create a patch so?

My answer had a typo ... the first line should have been "create a workspace on stream B", not "create a workspace on stream A" ... sorry about that!

- having the two current "my repository workspaces" bounded to each stream and with no pending changes
- I compare with... each other
- I see changes only in A workspace and changes only in B workspace
- I create new patch from the desired changeset
- I apply the patch to the current workspace
- Once conflicts resolved and accept the desired changes I create a new changeset and finaly delivers it to the stream
The pros and cons:
- I manage to mantain the two streams separately
- I start accumulating a bunch of different changesets between stream A and B
what do you think about it?
Comments

What you did is fine, but you can also see my revised answer above to achieve the same result with only a single workspace.
To avoid the accumulation of different change sets between stream A and stream B:
- Create a workspace on stream A, and load it.
- Change the flow target to stream B.
- In the Pending Changes view, right click on the component, and select Show -> History
- in the History view, right click on the change set, and select Reverse
- Right click on the Patch and select "Auto-Resolve".
- In the Pending Changes view, undo the changes that you do not want to back out.
- Checkin the unresolved changes.
- Deliver the changes to Stream B