Surround SCM Surround SCM

Secure version control of digital assets.
 

Surround SCM version control

Welcome to the intersection of change management and development workflow automation.

Effective management of assets throughout the product lifecycle.

Flexible branching gives you complete control of how you manage releases and track configurations. With a variety of branch types, Surround SCM makes it possible to manage any project without forcing a specific process or methodology on your team. Smart branches also retain extensive linking history, alleviating manual merge pain and ensuring that automatic code merges are right the first time.

Who builds code review into a version control tool? We do!

Don't spend money on yet another tool just to perform code reviews. We've built code reviews into Surround SCM. Comments are tracked with the file version reviewed for future reference. And, integrated code review can be part of your development workflow, blocking files from being checked into your build branch until they've passed the review.

See beyond 'checked in' to know the true status of files in the change process.

Know whether a file you're including in the build was code reviewed, ensure design documents went through the review process, and control who can make changes to reviewed and approved files. Surround SCM's configurable workflows let you define, control, and track the individual state of files undergoing change.

Powerful reports for your management.

There's so much activity during product development, yet management still needs to be updated. We more than understand—we've added powerful reporting capabilities in Surround SCM to help you. Start with reusable filters to cut through the clutter and find the valuable stuff. Then choose from a variety of detail, history, trend, and differences reports. Our RDMBS is also well-documented, so you can use other reporting tools if needed.

Surround SCM integrates into your tool chain

See the wide variety of applications that work with Surround

Complete Control Over Asset Versioning

Branch it your way.

We give you complete control over branching, promoting, rebasing, and versioning. Four types of branches make it easy to manage simple to complex projects. More...

Understanding branch types


Labels layer on more power.

Branching or labeling? Surround does both. Labeling lets you name specific configurations of files, making it easier to get files, create branches, and rebase files and branches on a group of related files in different repositories. Together, branching and labeling give you complete control over how you manage change process and releases, and track configurations. More...


Built-in code review.

When it's time for peer code reviews, fire up our integrated code review. Reviewer's comments are stored in Surround and can be referenced as team members work with files

Performing code reviews


History as seen by a bird.

Get a bird's eye view of your file history and easily visualize the full set of actions performed against a file across all branches. Interactively trace a file's history, see what changed between any two versions, and gain new insight into your source code changes. It's also a great way to see branch relationships.

Graphical history


A collection of changes.

Our extensive changelist and atomic transaction support let you perform actions on groups of files and rollback or cancel operations to related files. More...

It's All About Making YOU More Productive.

Full text search.

Our full text search saves you time by searching files without making you retrieve them first. We don't stop at plain text searches, Microsoft Word and Excel, PDF, and OpenOffice documents are also supported.

Full text search using Find in Files


We'll call you.

Stay in the loop with our built-in email notifications. Let Surround SCM know what you're interested in and it will automatically notify you when it happens, including when a file reaches a specific workflow state (e.g., Ready for Review).


On-the-go web access.

When you need a file and don't have the client installed, Surround's web client provides access from any browser. Use it to navigate branches and repositories, view file contents and history, and fetch files locally.


Keep everyone in the know.

File and branch hyperlinks provide one-click access from URLs you can include in emails, Wikis, web pages, and other documents.


Give me the latest report.

Making sense of changes and staying on top of project status is easier when you have the right reports. Surround SCM has a rich set of built-in reports and report creation capabilities for analyzing file information and activity. Even create custom change management reports that run outside Surround SCM.

A World Exists Beyond 'Checked in'.

A file's real state.

We can tell you whether a file you are including in the build was code reviewed, help ensure design documents went through the review process, and control who can make changes to reviewed and approved files. Just tell Surround the states your files can exist in.


Flow the work.

Once you define states, Surround's configurable workflows let you control which actions you can perform on any file or branch based on its state. Don't want to allow files that haven't been code reviewed into the build? It'll help keep that from happening.

In our blog: Using Workflow


Fast on the trigger.

For a tailored fit to your change management process, Surround's in-application, programmable pre- and post-triggers can automate workflow state transitions, enforce workflow rules, send email notifications, run external applications, modify custom fields, perform data validation, log information, and more. Most importantly, triggers are easy to create within Surround.
More...


More information is better.

There is a world of information beyond file size, creation date, and the like you may want to track with each file. We let you create up to 100 custom fields to attach custom metadata to files (e.g., user assigned to work on a file, file description, user who owns the file, etc.) Use this information in filters to see subsets of files and to make decisions with triggers.


Share the shadows.

Providing non-users with read-only access to versioned files is easy with our shadow folders. We "shadow" a repository into a directory location you specify. When a file in that repository changes, it automatically updates in the shadow directory. Simple, yet powerful.

Enterprise-Grade Security for Your Intellectual Property.

Your role defines you.

Surround SCM's role-based security groups let you create a security structure tailored to your various types of users. Server- and repository command access settings give you full control over who can see, access, and change information. It's very granular and flexible, yet easy to configure.


Coordinate with authorities.

We integrate with LDAP and Active Directory to ensure user account information is validated against your corporate directory. This also simplifies account administration.


That activity seems suspicious.

Our unusual activity monitoring tracks all access attempts. Unusual activity warnings, in addition to errors, other warnings, and informational messages, are logged for your review.


Cache as cache can.

For improved performance at remote locations with slower connectivity, Surround's intelligent caching proxy servers provides fast access to your files. Innovative pre-caching of new file versions is another of our unique features. The result is quick access to the latest versions of files from any location in the world along with faster distributed development.


Is this line secure?

With so much activity taking place off-premise, we ensure access to your files via a lightening-fast communications protocol, protected by Advanced Encryption Standard-256 (AES-256) encryption.

A highly-scalable versioning machine integrated with your tools.

The power of an RDBMS.

No brittle proprietary file system at play here. We store all your data in an industry-standard RDBMS, including Oracle, SQL Server, and PostgreSQL. This lets you leverage your existing database infrastructure and backup strategies, while providing high scalability. We've also documented the database for you in case you want to write reports against it.


Lives in your IDE.

You may call your IDE "home". For you, we have out-of-the-box integration with Visual Studio, Eclipse, Xcode, Adobe products, IntelliJ Idea, and more. Plus, you can directly access versioned files from Microsoft Office, Windows Explorer, and Mac OS X Finder.


Works with your other tools.

From build and diff/merge to fringe IDEs, we work with the tools you use to build great products and get work done.

Our professional services team is always ready to help you with custom tool integrations.

Learn more about the applications that work with Surround


Achieve end-to-end traceability.

There is a reason you are changing a file. Traceability begins when you link that change to the request in (preferably) TestTrack. If your company mandates traceability from requirements through the source code implementation and changes, we have you covered. Bonus: you can even do this from your IDE. Double bonus: you can configure linking as pre-check in requirement. This is complete change management.


Open and extensible by you.

Our API, accessible using the C, .NET, and Java, and CLI interfaces is well documented so you can integrate Surround tightly into your development process or use it for other applications.

Documentation: Using the Surround SCM API
Documentation: Using the Surround SCM CLI

Four Types of Branches

Surround SCM gives you complete control over branching, promoting, rebasing, and versioning. With mainline, baseline, workspace, and snapshot branches, Surround SCM makes it easy to manage simple or complex projects.

four types of branches

Mainline branches are the highest-level branch that contains all source files, other branches, and repositories. Each mainline branch is stored in its own relational database, which can be located on the same server as Surround SCM or on another server, allowing you to scale Surround SCM to meet your needs.

Baseline branches are public branches used for collaborative development. Changes made to the baseline branch affect everyone who accesses that branch.

Workspace branches, commonly called private workspaces or sandboxes, are private branches used to track and isolate changes made by individual users. Users can perform work and test in their workspace branch then promote changes to the baseline branch.

Snapshot branches are read-only, static branches that generally correspond to project milestones, such as a QA build or final release. (Labels are also commonly used for this purpose.) With snapshot branches, you can tell exactly which versions of files went into builds.

Branches are fast to create and lightweight. Internally to Surround SCM, a branch is a clone or copy of a source code repository at a specific point in time or at the current point in time. You might call it a virtual copy because no file copies are created in the Surround SCM database, but it looks like a copy from the user's point of view.

Surround SCM lets you freeze/unfreeze, hide/unhide, inactivate/activate, remove and delete branches.

Changelists and Atomic Transactions

Many software development tasks require making changes to multiple files. Managing all related files as a single unit is important for traceability. Likewise, the ability to rollback or cancel change operations to all related files is important for maintaining file repository integrity.

Changelists

To manage changes to multiple files, Surround SCM includes extensive changelist support. A changelist, which is a list of files and the actions to be performed on the files, groups transactions together and treats the files in the changelist as one unit. Changelist actions are not performed until the changelist is committed, which sends the files to the server or performs the action on the file or repository.

Pending Changelists

Surround SCM changelist support includes:

  • Making transactions atomic to ensure the integrity of operations performed on multiple files. If one action in a changelist fails, the entire operation is cancelled and changes are not made.
  • Viewing the history of changelists to see which files were processed together.
  • Linking changelists with corresponding features, defects, or change requests in TestTrack.
  • Moving files between changelists.
  • Viewing the differences between files in changelists (i.e., to review all changes before committing the changelist).
  • Merging files within a changelist.
  • Adding and removing files to and from a changelist.

Labels

Surround SCM's powerful and flexible file and changelist labeling make it easier to get files, create branches, and rebase files and branches on a group of related files in different repositories. Labels are text tags that can be used to mark files with related revisions. Unlike snapshot branches, which are immutable, files can be added to a label and replaced with other versions.

Creating labels

A few of the many capabilities of Surround SCM labels include:

  • Labels can be associated with changelists for enhanced changeset functionality.
  • Labels can be scoped to a branch and then reused across branches.
  • Hidden labels can be used to prevent system labels, such as those generated by a build process, from cluttering label lists.
  • Labels can be created based on the set of files in a working directory, simplifying the build management process. This lets you wait for the build to complete successfully and then label the build without the need to freeze or otherwise halt check ins during the build process.
  • Branch promotions can be labeled to note the set of changes that were promoted at that time.
  • Difference reports can be run against labels, such as those used in nightly builds, to determine the set of files that differ between the two builds.

Label Differences

Labels are typically created to correspond with an event or milestone that involves a group of files, such as a defect fix, build, or release. You can also search for files, generate reports, and create triggers based on labels.

Programmable Triggers

In-application, programmable triggers let you extend Surround SCM's functionality to better fit your change management process. Triggers can automate workflow state transitions, enforce workflow rules, send email notifications, run external applications, modify custom fields, perform data validation, log information, and more. Most importantly, you can easily create triggers within Surround SCM.

Triggers can run when the following file events occur:

  • A file changes for any reason
  • Any of the following file events are performed: Add, Add from branch, Attach to defect, Check in, Check out, Label, Promote from, Rebase, Remove, Rename file, Restore, Share broken, Share created.
  • A file version is updated
  • A file is created
  • A changelist is committed
  • A file enters a specific workflow state
  • A custom field changes

Triggers can be even more powerful when they are used with the Surround SCM workflow and custom fields. The following examples provide some common tasks that you can automate with triggers.

  • Assign files for code review after they are checked in—If you use the default Surround SCM workflow and the Assigned custom field, you can create a post-event trigger to run when a file version is updated. You can create trigger actions that automatically set the workflow state to Awaiting Review, set the Assigned custom field to the user who performs code reviews, and send an email notification to the reviewer.
  • Prevent users from selecting a file workflow state based on their security permissions — If you use the default Surround SCM workflow and have a Reviewers security group, you can prevent users who are not in the group from selecting the Reviewed state. You can create a pre-event trigger to run when a user who is not in the Reviewers security group tries to change a file's state to Reviewed. You can create a trigger action to prevent the workflow state change and display a message, such as "Only reviewers can mark a file as Reviewed".

Surround SCM
Hosted$35

per user/mo

  • Hosted on Microsoft Azure
  • Free support and upgrades
  • 1 year, 10 user minimum

Surround SCM
Subscription$29

per user/mo

  • Hosted on your premises
  • Free support and upgrades
  • No minimum commitment

Surround SCM
Perpetual$595

per user

  • Hosted on your premises
  • Named and floating options
  • Annual maintenance required

Ready to Take the Next Step?