September 8, 2010

Server Merges Versus Local Merges in Surround SCM

Surround SCM

Surround SCM provides several methods for merging. Regardless of the method you use, the merge will either be a server merge or a client (local) merge. Following is more information about the different types of merges and how they work.

Server merges

Server merges are always performed by the Surround SCM Server on the server machine. There are two different utilities that Surround SCM can use for this purpose. By default, Surround SCM uses the GNU diff3 utility. Diff3 is OK to handle text files with simple merge scenarios. For more complex merging scenarios and to handle files with Unicode, you must enable Guiffy, which is a commercial tool that is packaged with Surround SCM, for server-side merging. I recommend using Guiffy, even if you do not have any Unicode files, because it is better at resolving merge conflicts. Because Guiffy is a Java application, you will need to make sure your administrator chose to install the JRE with Surround SCM, or that one is installed on the server. To enable Guiffy for server-side merges, go to Tools > AdministrationServer Options.

Local merges

Local merges, which can also be referred to as 'manual' merges, are performed on the client. They are often peformed by the user using his or her configured merge utility. However, there are a few instances where a local merge can be done by Surround SCM automatically. This will largely depend on what you are using for your local merges and the operating system. If you use Guiffy and your are NOT running the client on a Mac, then you can have Surround SCM attempt local merges for you first. If the auto merge fails, you will be prompted to perform a manual merge. If you use any other merge tool or are running the client on a Mac, then all local merges will be manual merges. The following screenshot shows the Get Files dialog on a Mac client. Notice the Merge should first attempt auto-merge option is unavailable.