'Suspend' delivered changesets
Hi All,
We have a situation where a change has been delivered to the main stream, but now needs to be pulled - essentially, a supporting change to a supplementary system has not happened as planned. We will want to deliver these changes, eventually; just need them suspended for the moment. The changesets were all delivered from one Repository Workspace, and are all contained under one work item.
I can see a number of ways of achieving this:
- create a 'reverse' patch, then later 'reverse' that (not sure how reliable this would be);
- create a baseline, create a new repository workspace on that baseline, create a 'reverse' patch in another workspace and deliver it, leave the new repository workspace untouched until ready to reintroduce the changes, then accept all changes *except* the reverse patch, then replace the stream with the workspace contents;
- fork the stream, apply the reverse patch to the fork, flow all changes after this to both streams, then revert to the old stream when ready (complicated).
Do any of these make sense? Are there any alternatives that I haven't considered?
Cheers!
Adam...
Accepted answer
The SCM FAQ describes how to do this. Reversing the change is valid but the FAQ also describes how to remove the change set from the stream. Although, you may want to resort to reversing if discarding the unwanted changes requires you to discard other change sets that you want to keep. Discarding the changes has the advantage that the history looks like the change was never delivered and allows you to redeliver those exact changes again at a later date.