Microsoft Visual SourceSafe
Encyclopedia
Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 Visual SourceSafe
(VSS) is a source control software package 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
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

, SourceSafe can actually handle any type of file in its database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

, but prior versions have been shown to be unstable when confronted with large amounts of non-textual data (images, binary executables, etc.).

History

SourceSafe was originally created by a company called One Tree Software. One Tree SourceSafe had gone through several releases in their 1.x to 2.x cycles, supporting DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...

, OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...

 (with a Presentation Manager
Presentation Manager
Presentation Manager is the graphical user interface that IBM and Microsoft introduced in version 1.1 of their operating system OS/2 in late 1988.-History:...

 GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

), Windows, Windows NT, Mac, and Unix. When Microsoft bought OneTree in 1994, they immediately ceased development on all versions except for Windows. Microsoft "Visual SourceSafe 3.1", a Windows 16-bit-only, rebranded One Tree 3.0 version, was briefly available before Microsoft released a Version 4.0.

Overview

SourceSafe was initially not a client/server SCM, but rather a local only SCM. 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
Multi-user
Multi-user is a term that defines an operating system or application software that allows concurrent access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving the...

 environments, however, it lacks many important features found in other SCM products, including support for atomic commit
Atomic commit
An atomic commit is an operation in which a set of distinct changes is applied as a single operation. If the changes are applied then the atomic commit is said to have succeeded. If there is a failure before the atomic commit can be completed then all of the changes completed in the atomic commit...

s of multiple files (CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...

 has the same problem as it is built upon the original RCS
Revision Control System
The Revision Control System is a software implementation of revision control that automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, for example programs, documentation, procedural graphics, papers, and form...

). SourceSafe inherits its shared functionality using direct remote file system access to all the files in the repository. This, together with a bug where the code is using old memory after a call to reallocate, are contributing factors to why SS databases sometimes go bad.

Starting with VSS 2005, Microsoft has added a client–server mode. In this mode, clients do not need write access to an SMB
Server Message Block
In computer networking, Server Message Block , also known as Common Internet File System operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. It also provides an...

 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
2005 October 2005
6.0 2002
5.0
4.0 September 1995

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
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

 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 rely on VSS, and that the predominant tool is SourceDepot. According to Matthew Doar
The Microsoft Developer Division is now using the new Team Foundation Server
Team Foundation Server
Team Foundation Server is a Microsoft product offering source control, data collection, reporting, and project tracking, and is intended for collaborative software development projects...

 for most of its internal projects, although a VSS transcript implied that other large teams use "a mix of customized in-house tools."

Updates

An updated version called Visual SourceSafe 2005 was released in November 2005, promising improved performance and stability, better merging for Unicode
Unicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...

 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 2008 Team System.

At the same time, Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 also introduced a source control and project lifecycle management product called Team Foundation Server
Team Foundation Server
Team Foundation Server is a Microsoft product offering source control, data collection, reporting, and project tracking, and is intended for collaborative software development projects...

, which is part of Visual Studio Team System
Visual Studio Team System
Visual Studio Application Lifecycle Management is a collection of integrated software development tools developed by Microsoft. These tools include IDEs, source control, work items, collaboration, metrics, and reporting tools.-Platform:...

. This product addresses many of Visual SourceSafe's shortcomings, 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 is a hotfix so existing SourceSafe customers can use SourceSafe with Studio 2010.

The final version of the product, Visual SourceSafe 2005, will retire from mainstream support on 10 July 2012 with extended support ending on 11 July 2017.

Further reading

  • Visual SourceSafe 2005 Software Configuration Management in Practice (Packt Publishing, 2007)
  • Real World Software Configuration Management (Apress, 2003)
  • Essential SourceSafe (Hentzenwerke Publishing, 2001)

See also

  • Revision control
    Revision control
    Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...

  • Configuration management
    Configuration management
    Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...

  • Software configuration management
    Software configuration management
    In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines....

  • Change management
    Change management
    Change management is a structured approach to shifting/transitioning individuals, teams, and organizations from a current state to a desired future state. It is an organizational process aimed at helping employees to accept and embrace changes in their current business environment....

  • List of software engineering topics
  • Comparison of revision control software
    Comparison of revision control software
    The following is a comparison of revision control software. The following tables includes general and technical information for notable revision control and software configuration management software.- General information :Table Explanation...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK