Streams - Rename/Replace or start new
502
I had two streams called P1-Dev & P1-QA. We started a new release based off of 85% of this code, so we used the same stream. Months in, they decided to split the stream in to a new project/stream P2-dev. They want some additional legacy work now done in P1-Dev, but it has (P2-dev) code that no one wants. What's the best way to handle this?
A) Just create P3-Dev based off of P1-QA?
B) Can you undo the changes in P1-Dev? Is it too much of a hassle?
C) Can you rename a stream? P1-Dev is now P1-Legacy, and create a new P1-Dev?
D) Can you overwrite P1-Dev with P1-QA? (without merging)
I had two streams called P1-Dev & P1-QA. We started a new release based off of 85% of this code, so we used the same stream. Months in, they decided to split the stream in to a new project/stream P2-dev. They want some additional legacy work now done in P1-Dev, but it has (P2-dev) code that no one wants. What's the best way to handle this?
A) Just create P3-Dev based off of P1-QA?
B) Can you undo the changes in P1-Dev? Is it too much of a hassle?
C) Can you rename a stream? P1-Dev is now P1-Legacy, and create a new P1-Dev?
D) Can you overwrite P1-Dev with P1-QA? (without merging)
One answer
If I understand your question correctly, you have two streams now - P2-Dev and P1-QA where P2-Dev was created by renaming P1-Dev. There are different answers for different scenarios -
Did you ever create snapshots of P1-Dev just before starting any work for P2-Dev? If so, you could create a new stream (say P1-Dev-Legacy) from that snapshot. It is a standard practice to create snapshots to captures milestones and releases.
If you never created a snapshot of P1-Dev before starting work for P2-Dev then depending on the status of P1-QA, you might be able to create a new stream (P1-Dev-Legacy) based on P1-QA. Here I am assuming that P1-QA is an equivalent of stream of P1-Dev and it has all the changes for P1-Dev but it does not have any changes for P2-QA. This is what you would want to do in your option A.
If P1-QA is not the desired stream because it does not have all the changes (or has extra changes) and you never created a snapshot that you can use, you may be able to create a new stream from the new P2-Dev and then discard all the P2-Dev specific changesets for each component. This is what you would want to do in your option B. Yes, it will be a manual work and could be cumbersome depending on number of components you have and how easily you can identify changesets that you will need to discard.
Your option C is probably not what you really want to do. Yes, you can rename a stream and call it something that reflects its past but the fact that it has new changes makes it a different stream. You will still need to manually discard changesets.
Regarding your option D, you can't really replace a stream/workspace with another. You can only flow changes. Yes, if you had snapshots created, you could replace a stream with a snapshot. if you have baselines created, you can use that to replace components on the stream. If you think that replacing P1-Dev with P1-QA solves your purpose, you should try your option A instead.