October 8, 2010

Moving Files and Repositories in Surround SCM

Surround SCM
Moving files or repositories in Surround SCM provides an easy way to restructure your files and repositories. When you move a file or a repository, the history associated with the object is also preserved. Both actions are available from menus. By default, Move Files... is available from the Activities menu and Move Repository... is available from the Repository menu.  You can also configure them to be available from your context menus. You can also configure move to be the default action when you perform a drag-and-drop operation. Simply go to the User Options under the Tools menu.  The following screenshot shows which option you need to select to set this up.

The move action is recorded as part of the history, so you will be able to easily figure out if a file or repository was moved, and where it came from.

The move action can be propagated to other branches with promote and rebase actions.

The one thing you must be careful of is when you move shares in Surround SCM.  There are a couple of instances that you need to be aware of: 1. Moving a share outside the scope of a child branch - If you have a child branch that only contains a subset of repositories of its parent, be careful if you move the share to a repository not contained in the child branch.  Rebasing to this child branch may result in unexpected results. Depending on what is moved (base vs. share) the share may be removed from the child branch. 2. History of shares might be misleading - When you look at the history of a file that has been shared, the history is the same on all shares. Seeing a move action may be misleading because the current file that you are looking at might not be the one that got actually moved.