September 15, 2011

Welcome to Wherever You Are: Surround SCM Changelists

Surround SCM
Changelists are an extremely useful feature in Surround SCM. Although changelists were initially introduced into Surround SCM to guarantee a set of actions occur atomically, they have evolved into a great way to group a set of actions together for a variety of purposes. Over time, we’ve added a number of other features that leverage changelists as a convenient grouping mechanism. First, a quick description of changelists. Changelists provide a way to group and queue up changes for the server. When you add an event to a changelist, like a check in or a newly added file, the action is recorded in the changelist but is not sent to the server. You can add additional related actions to the same changelist. Once all the relevant changes have been added to the changelist, you can commit the changelist, which pushes all the updates to the server from your local machine. These changes are all guaranteed to be atomically committed as a group; that is, either they all will succeed or none of them will occur. In order to use changelists, they have to be configured for your server by your system administrator. By default, users are allowed (but not required) to use changelists. You can also optionally set up your local defaults to always use changelists. This is found in your User Options, in the File Dialog Defaults. This lets you specify if you would like to normally perform all file actions as part of a changelist. Once you’ve started using changelists, what can you do with them? First, by opening up the Changelist dialog you have a number of useful options. You can attach a pending changelist to a defect, assuming you have a defect tracking tool like TestTrack installed. You can also label all the files in a changelist.  This can be convenient if you want to later create a branch based on those files, because “by label” is one of the choices when creating a new branch. A new feature added in Surround SCM 2011 is the ability to duplicate changes based on a changelist. Duplicating changes between branches allows you to “cherry pick” just the lines changed between versions and move them to any other branch (not just a parent or child branch). Another new feature that long-time changelist users may not be aware of is the ability to search committed changelists. If you bring up the changelist window, and switch to either the “My Committed” or “All committed” views, a new search option is available in the filter list. Choosing search lets you find changelists by name, creation date, or even by the name of a file in the changelist. If you’re looking for a quick, lightweight way to group actions together for easy reference and powerful merging and tracking, changelists are definitely worth looking at.