How can I merge changes that include move-in-repository changes?
I have two streams A and B, with A the flow target for B. Both A and B contain changes which I want to merge, however the changes in B also involve the creation of a new component and various move-in-repository actions to move top-level folders from the existing component to the new component, leaving other folders unmoved in the original component. How do I merge so as to end up with all A's changes merged in with B's changes, across the original and new components, so I can deliver the merged components to A?
One answer
Every component has it's own set of change sets (change sets do not span multiple components), so a move-in-repository operation produces two change sets ... a "deletion" change set in the source component (where it was "moved" from), and an "addition" change set in the target component (where it was moved to). When you merge from A to B, the "deletion" change sets from the source component in A will cause the corresponding deletions in the source component configuration of B, and the "addition" change sets from the target component in A will cause the corresponding additions in the target component configuration in B.