Shelving Scenario

This scenario describes how to:

  1. Sam is assigned the request QLARIUS_ENH_7 to add a new feature to the Qlarius application. He starts development in the work area C:\Work_Main, which is associated with the mainline stream, QLARIUS_MAIN.

  2. Sam launches the web client and opens his default stream QLARIUS_MAIN with the work area set to C:\Work_Main. This work area contains all his local changes. Sam starts to make changes to the code.

  3. Sam decides that his changes are not ready to deliver to the mainline stream. So he decides to branch them from the local work area into a topic stream using the shelving feature.

  4. Before shelving, Sam uses the Update operation to fetch the latest repository content from the mainline into the work area. This ensures that the new topic stream will contain the most recent sources.

  5. Sam selects the Folders and Items view and on the toolbar clicks Shelve.

  6. In the Shelve wizard, Sam specifies a name for topic stream that is the same as the request related to the work, QLARIUS_ENH7. This makes it easier to identify the purpose of the stream. He also specifies a unique branch name and a description.

  7. Sam wants to continue working on this enhancement in the current work area after shelving, so he selects the Rehome option. The work area will be associated the new topic stream after shelving.

    In the Shelve wizard, Sam verifies that all parameters are set as expected, validates the file changes to be shelved, and specifies a comment for the uploaded changes.

    Note: Shelving, or delivering to a topic stream, does not require a request. Request QLARIUS_ENH_7 will be used when merging changes into the mainline.

  8. After the local changes are shelved, Sam switches the web client to the new topic stream, QLARIUS_ENH7. The work area, C:\Work_Main, is rehomed to the new topic stream that he just created.

  9. Note: QLARIUS_MAIN has been configured to automatically create pull requests from topic streams.

  10. Sam completes the enhancements to the topic stream and delivers the changes to the repository. To start the peer review process he does the following in the web client:

  11. Arlene receives an email notification that there is a new pull request in her inbox ready for review. She clicks the link in the notification, which opens the pull request in Pulse. The request contains a list of all the changes that Sam made in the topic stream QLARIUS_ENH7. Arlene reviews the code, adds comments to the pull request suggesting changes, and votes Request Changes to send it for rework.

  12. Sam receives a notification that the pull request has been sent for rework. He implements the changes proposed by Arlene. He also notices a warning in the pull request that it cannot be automatically merged because of conflicting changes in the mainline stream introduced by a different team member. To resolve the conflicts Sam:

  13. Arlene is satisfied with the latest changes and votes to approve the pull request.

  14. Sam opens the pull request and clicks Merge Pull Request, which automatically merges all the topic stream changes into the mainline.

  15. Sam can now rehome the work area C:\QLARIUS and continue development on mainline changes, or branch another topic stream and work on a different task.