Seapine Surround SCM – A First Look

I’ve been looking for a source control solution for some time. I used to use QVCS, but it costs money and you have to get the Enterprise version to get client/ server. At this point I have three, or four, development systems and they include both Windows and Linux.

I considered Bazaar, but after a couple of days I came up with more questions than I had answers. My reasons for not using Bazaar are here.

While there were a few glitches I was able to get going with Surround SCM in a single day. Surround SCM is easy to use, and supports client / server across Windows, Mac and Linux.

Surround SCM provides support for all the common systems.

  • Server packages for Windows x86 and 64bit as well as Mac and Linux.
  • Clients for Windows, Mac, and some Linux distros.

Here is the time-line for my testing over the course of a single day.

  • Installed the Win x64 Server on a Windows 7 system.
  • Configured the license manager with a single user license, but there is a known problem and after a helpful and short support call I was able to get going with an eval license until the maintenance release comes out to allow my single user license to work correctly. Of course a License Manager would not be present in an Open Source system, but Surround SCM license manager is clearly laid out and easy to use.
  • Installed the Win client without the JRE, since there is a JRE on the system that comes with Open Office. That worked just fine.
  • There was some initial confusion about users. It turns out that you need to create users, or import them from the license manager, before you can log in. It was not initially clear that the License manager users are administrators and not coders, although they can be both. The administrator logs into the GUI client to create users with access to the code repositories.
  • A Win client installed on another system could not connect to the server. This was tracked down to a Windows Firewall configuration problem on the server system. After the installation the local client worked fine, but remote clients could not connect. There were incorrect entries in the server Windows firewall. The ports were wrong. Adding the SCM server as a permitted application allowed the system to work correctly.
  • The client is easy to understand and use. I have used GUI interfaces for Source Control since 1994 including PVCS, Source Safe, QVCS and others. The overall presentation and GUI model of Surround SCM is familiar after having used these other tools. Finding the answers to all my requirements were easy to find in the interface with no reference to the documentation. But if I come up with problems, there is a 200+ user manual to refer to as well as an installation guide and other documentation.
  • I have been able to use Surround SCM to check in both a Visual Studio C++ project as well as a Open Office calc script project. As I originally developed that project I did not have an SCM solution and so needed to name the files with incrementing file names.
  • I was able to check in text files and JPG images. Viewing a JPG image showed the file in a viewer.
  • Surround SCM holds its repositories in a database, by default Postgres, but other systems are supported including Microsoft SQL Server and Oracle. This should allow me to control web projects such as WordPress or Joomla themes as well as code projects. In the past I have done theme projects and had no SCM solution for these projects.
  • One problem that I have yet to work out is the problem of backing up the Surround SCM database. I will be investigating that in the next few days. I use Carbonite as a backup solution so if I can cause Surround to emit a backup data file – possibly in SQL – then I can have carbonite save those backups.

Here are some screen shots from my short work with Surround SCM.

Main Window

Client Window with modified files

The main window is familiar and easy to use.

Revision Differences

Difference between revisions

There is a nice java based difference program. You can launch this from the main window or from the history window.

Graphical Revision Map

Graphical Revision Tree

There is a graphical revision tree. This will be very useful when there are many branches and many revisions.

Get a Previous Revision

Get a Previous Version

I will need to test removing a file in a revision, leaving it out of a revision and then get it back in a future revision.

Mainline Branches

There is a choice to be made about how many Mainline Branches to create. At first I thought perhaps I should make a Mainline Branch for all the programs that I want to control, but that didn’t seem right, because it is after all a Branch. I decided that each program should be a separate branch, except for programs which share common code. For example, most of my OpenGL programs share a common class to construct the OpenGL window. It seems best to have all the OpenGL programs share a Mainline Branch so that they can have the OpenGL shared class in the same Mainline Branch.

Select a MainBranch Repository


My experience so far with Surround SCM has been very positive. Not only does the software work well, and is easy to understand, but the sales and support staff are very helpful. While I will be using their free single user license, I’ll be encouraging my clients who need source control to consider Seapine’s fine product.

– Windy