It's all about the answers!

Ask a question

How to deliver or accept with conflicting changes incoming and outgoing in a stream?

Ann DeBolt (131) | asked Jul 05 '16, 6:33 p.m.
edited Jul 07 '16, 12:04 p.m. by David Lafreniere (4.3k7)
I have 2 streams, TEST and MAINT, that both flow into BASE.  We use TEST as our development stream and MAINT as our maintenance stream.  When something is delivered from either stream to BASE, those changes are then delivered to the other stream to keep them in sync.

There was a change set accidentally delivered to TEST that should not have been delivered.  Because it would have affected our maintenance stream we did not deliver the changes to BASE right away, but intended to deliver both those changes and a change set to reverse it at the same time after the changes in MAINT were completed.  One module was modified by the accidental delivery and the changes in MAINT.  We are now trying to sync up the MAINT and TEST streams, but I cannot accept the changes because of the common module.  Outgoing changes on that module (the accidental change and its reversal) and incoming changes on that module (from BASE) are pending.

When I try to deliver to BASE, the error suggests to accept all incoming changes, resolve the conflicts, and try delivering again, but I cannot accept the changes.  It is a stream, not my workspace, so I cannot make changes.

When I try to accept the incoming change, the error suggests to accept the changes into a workspace, resolve the conflicts, then deliver the merged changes.  I cannot accept anything into a workspace because there are no incoming changes to accept.  All of the change sets have already been accepted and there is no conflict to resolve at the workspace level.  The conflict is in the stream.

I tried to "Reverse" the outgoing change from TEST, but the patch is just put in the list of changes waiting to be accepted.

How can I get it to accept the changes?  I also need to either deliver the other changes or cancel them out, but I need to figure out how to get the code flowing again.  If I could reject the incoming change that would be helpful, but I understand that is not available yet.  Is there anything I can do other than deleting a stream and recreating everything?

Accepted answer

permanent link
Lily Wang (4.9k714) | answered Jul 05 '16, 8:31 p.m.
Per my understanding, now the BASE stream and MAINT stream are synced, and you need to deliver the change sets from TEST to BASE, is that correct?
In such case, if a conflict is reported, you have to create a workspace and a local sandbox to resolve the conflict in your sandbox. You said you could not see any incoming changeset in you workspace. Have you created the workspace and set the flow target stream correctly?
You can try:
1. Create a new workspace from TEST stream so the workspace has same change set as the TEST stream.
2. Change the workspace's current flow target to BASE stream. You should see change set in Incoming folder.
3. Accept the incoming change set, resolve the conflict in the workspace.
4. Deliver all outgoing change sets of the workspace to the BASE stream.
Hope that's helpful.
Ann DeBolt selected this answer as the correct answer

Ann DeBolt commented Jul 06 '16, 2:09 p.m. | edited Jul 07 '16, 12:02 p.m.

Thank you, Lily.  That was a big help.

Your suggestion may have worked, but the key that I was missing was "Deliver all" as in right click on "Outgoing" and select "Deliver".  I was still trying to deliver them one at a time and it would not work.  I ended up doing steps 1 through 3, then I disconnected TEST from BASE so that got rid of all incoming and outgoing, redirected my workspace to TEST (the default), and delivered all at the same time.

Your answer

Register or to post your answer.