April 19, 2011

Presenting Surround SCM Shelving

Surround SCM
Version Control
We've been hard at work the past few months adding new features to Surround SCM. Shelving is the new feature that I'm particularly excited about. As a developer and a user of Surround SCM, I think this is one of the most exciting features we've added in the last few years. In fact, I've been using shelves daily since we installed Surround SCM 2011.1 on our in-house server. A shelf is a container on the Surround SCM Server that is used to store files from a local working directory. Files do not need to be version controlled by Surround SCM to be put on a shelf, they just need to reside in a working directory. You can have as many shelves as you want. Each shelf has a single owner who can modify the contents and, optionally, a group of shared users who can view the contents. The shelf owner can hand it to another user by changing its owner. You can also shelve and unshelve any number of files as often as you need to without having to create a new shelf each time. Now that I've piqued your interest, let's take this feature for a test drive. First, I modify a file in my working directory. Next, I select the modified file in Surround SCM, right-click it, and select "Shelve Files...". (If this command isn't on your context menu, you can add it by going to Tools >User Options.) Then, I enter a shelf name and brief description in the text fields, select the  "View Shelves window after shelving files" option, and click "OK". The file is now shelved. [caption id="attachment_7742" align="aligncenter" width="560" caption="Shelving Window"]Shelving Window Screenshot[/caption]

Now that my file is on a shelf, I can change it locally and revert back to its current state by unshelving it. I can also easily compare the differences between the shelved file and the file in my working directory or any historical version. Following are some examples of how you might want to use shelves:
  • Back up files: Need to switch gears and fix a defect? Shelve your code and resume work later.
  • Move code: Shelve your code, then unshelve on a different platform to test the changes.
  • Change branches: Shelve your code from branch A and unshelve to branch B.
  • Review code: Refactoring critical code? It never hurts to have someone else take a quick look before checking it in. Shelve it and share it!
I encourage you to give shelving a try as soon as you get Surround SCM 2011.1. If your maintenance isn't current. this is a good time to renew it so you can get the upgrade once it's available. After you try shelving, leave me some feedback and let me know what you think of the feature. Happy shelving!