# Microsoft Visual SourceSafe

Microsoft Visual SourceSafe (VSS) is a discontinued source control program oriented towards small software development projects. Like most source control systems, SourceSafe creates a virtual library of computer files. While most commonly used for source code, SourceSafe can handle any type of file in its database, but older versions were shown to be unstable when used to store large amounts of non-textual data, such as images and compiled executables.

## History

SourceSafe was originally created by a North Carolina company called One Tree Software. One Tree SourceSafe had gone through several releases in their 1.x to 2.x cycles, supporting DOS, OS/2 (with a Presentation Manager GUI), Windows, Windows NT, Mac, and Unix. When Microsoft bought OneTree in 1994, they immediately ceased development on all versions except for Windows. Microsoft SourceSafe 3.1, Windows 16-bit-only and Macintosh, rebranded One Tree 3.0 versions, were briefly available before Microsoft released a Version 4.0. With the acquisition of One Tree Software, Microsoft discontinued its source code control product at the time, Microsoft Delta. After the acquisition, Mainsoft Corporation developed SourceSafe for UNIX in cooperation with Microsoft. Later, Metrowerks, Inc. developed Visual SourceSafe for Macintosh in cooperation with Microsoft.

## Overview

SourceSafe was initially not a client/server Source Code Management, but rather a local only SCM system. Architecturally, this serves as both a strength and weakness of design, depending on the environment it is used in. It allows a single user system to be set up with less configuration than that of some other SCM systems. In addition, the process of backing up can be as simple as copying all of the contents of a single directory tree. For multi-user environments, however, it lacks many important features found in other SCM products, including support for atomic commits of multiple files (CVS has the same problem as it is built upon the original RCS). SourceSafe inherits its shared functionality using direct remote file system access to all the files in the repository. This, together with historic bugs in the codebase, occasionally led to SourceSafe database corruption, a problem noted by Microsoft.
Starting with VSS 2005, Microsoft added a client–server mode. In this mode, clients do not need write access to a SMB share where they can potentially damage the SS database. Instead, files must be accessed through the VSS client tools - the VSS windows client, the VSS command-line tool, or some application that integrates with or emulates these client tools.

### Versions

| Version | Date |
| 3.1 | February 14, 1995 |
| 4.0 | September 12, 1995 |
| 5.0 | October 7, 1996 |
| 6.0 | June 3, 1998 |
| 6.0c (Build 9350) | 2001 |
| 2005 | January 27, 2006 |

## Criticism

Visual SourceSafe's stability is criticised due to the way Visual SourceSafe uses a direct, file-based access mechanism that allows any client to modify a file in the repository after locking it. If a client machine crashes in the middle of updating a file, it can corrupt that file. Many users of Visual SourceSafe mitigate this risk by making use of a utility provided by Visual SourceSafe that checks the database for corruption and, when able, corrects errors that it finds.

## Microsoft in-house use

Although "eating their own dog food" is often said to be part of Microsoft's culture, VSS appears to be an exception; it is widely rumored that very few projects within Microsoft relied on Visual SourceSafe before the product was discontinued, and that the predominant tool at the time was SourceDepot. According to Matthew Doar:
   Microsoft itself used an internally developed version of RCS named SLM until 1999, when it began using a version of Perforce named SourceDepot.
The Microsoft Developer Division was using Team Foundation Server for most of its internal projects, although a VSS transcript implied that other large teams use "a mix of customized in-house tools."
Microsoft has since moved on to using Git.

## Updates

An updated version called Visual SourceSafe 2005 was released in November 2005, promising improved performance and stability, better merging for Unicode and XML files, as well as the ability to check files out over HTTP. It was included with Visual Studio 2005 Team System editions, but is not included with Visual Studio Team System 2008.
At the same time, Microsoft also introduced a source control called Team Foundation Version Control (TFVC), which was part of project lifecycle management product Visual Studio Team System. This product addresses many of the shortcomings of Visual SourceSafe, making it suitable for larger teams requiring high levels of stability and control over activities.
With Visual Studio 2010, Microsoft no longer distributes Visual SourceSafe. Microsoft now offers Team Foundation Server Basic for smaller development teams. There was a hotfix so existing customers could use SourceSafe with Visual Studio 2010.
The final version of the product, Visual SourceSafe 2005, retired from mainstream support on 10 July 2012 with extended support ending on 11 July 2017.