Microsoft Visual SourceSafe

From Wikipedia, the free encyclopedia

Microsoft 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. Users can read any of the files in the library at any time, but in order to change them, they must first "check out" the file. They are then allowed to modify the file and finally check it back in. The changes are made available to the other users only after the file has been checked in. Thus, a file cannot be edited by multiple users simultaneously. While most commonly used for source code, SourceSafe can actually handle any type of file in its database, but prior versions have been shown to be unstable when confronted with large amounts of non-textual data (images, binary executables, etc).

Contents

[edit] History

SourceSafe was originally created by a company called One Tree Software. The first published version of the product was 3.1, which was a 16-bit application. Microsoft at the time had a less powerful source code control system named Delta. In 1994, Microsoft bought One Tree Software and went on to modify the 16-bit version of SourceSafe 3.1.[1] The result was version 4.0 of Visual SourceSafe (VSS), which was a 32-bit edition of the product. It was released sometime around 1995.

[edit] 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 in which it is being used. It allows a single user system to be set up with less configuration than that of 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 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 don't need write access to an 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 else some application which integrates with or emulates these client tools.[citation needed]

[edit] Advantages

Visual SourceSafe's advantages are relative ease of use and some degree of integration with other Microsoft development solutions. For small or medium scale development, where multiple versions are not simultaneously supported, its limitations do not cause major problems.[citation needed] Further strong points include its excellent integration with Microsoft Visual Studio, its easy-to-use interface[citation needed], and the fact that it is included as part of certain MSDN Subscriptions.

[edit] Criticisms

Due to the nature of its design, the performance of SourceSafe is greatly affected by the type of environment in which it is deployed.[citation needed] The optimal environment is that in which a small team of developers is accessing repository content via a LAN.[citation needed] The criticism concerning instability stems largely from the manner in which Visual SourceSafe uses a direct, file-based access mechanism allowing 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 leave that file in a corrupted state.[citation needed] 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.

Many small teams (around 5 people) have used Visual SourceSafe successfully for several years without experiencing any corruption.[citation needed] However, because revision control is such a vital activity for software development teams, any risk of such corruption can carry a lot of weight in the risk management decision process in many organizations. Visual SourceSafe 2005 seeks to address the aforementioned performance and stability issues.[citation needed] For larger development teams, however, Microsoft suggests its new flagship SCM product, Team Foundation Server.

[edit] Platforms

Microsoft only supports SourceSafe for Windows platforms. The following Microsoft partners offer non-Windows versions of SourceSafe:

  • Dynamsoft offers a SourceSafe add-on product SourceAnywhere for VSS that provides a pure Java Client for SourceSafe. This Java Client can run on any platform where JVM can run, including Linux, Unix, Macintosh, Solaris, etc.
  • Metrowerks offers a source code control product that is fully compatible with Visual SourceSafe for the Macintosh.
  • SourceGear offers a SourceSafe add-on product SourceOffSite that includes clients for Linux, Macintosh and Solaris.

Visual SourceSafe 6 has been reported[2] to work on Linux under a Wine compatibility layer. Additionally, SSU is an Open Source alternative which offers functionality similar to SourceOffsite on POSIX platforms.

[edit] SourceSafe add-on tools

  • Acorden SourceXT

SourceXT is a web service gateway to Visual SourceSafe. It provides remote access to SourceSafe files over a standard Internet connection.

  • Bris SourceHelper

SourceSafe add-on that extends VSS functionality. It enables you to specify actions and run them at any time, and to search the repository for information.

  • CheXpy

CheXpy is a utility for that monitor and notifies on changes in Visual SourceSafe repositories.

  • Configuration Manager's Workbench

A family of configuration management utilities providing extensions to SourceSafe. These extensions include change and problem tracking, task tracking, software inventory and release management.

  • CryptoMonkey CMNotify

A single, simple server for email notifications from Visual SourceSafe.

  • Dynamsoft SourceAnywhere for VSS

SourceAnywhere for VSS is a VSS remote access solution. As an add-on tool of SourceSafe, it provides fast, reliable and secure remote access for users of SourceSafe 6.0 and SourceSafe 2005.

  • Free backup script for Visual Sourcesafe

This free backup script (DOS) for Visual Sourcesafe creates separate directories for each project and saves all files. Reports to file and, optionally, email.

  • SourceCompanion

Provide email notification for changes in VSS, and synchronizing with VSS directly using email, batch synchronization, intelligent merge of redundant emails. Clients side is entirely integrated within Outlook and VSS.

  • SourceOffSite

SourceOffSite lets you use SourceSafe remotely over any TCP/IP network.

  • SourceSafe Reporter

Tools that lets you generate reports on projects, file, checkouts and users in XML, HTML and RTF formats.

  • SourceSafe Tools

Fast file-diffs, remote code reviews, and whole-project analysis. Integrations with Explorer and Visual Studio 6.0 and .NET.

  • SourceXplore

A shell extension which allows you to perform basic SourceSafe operation directly from windows explorer. This product no longer supported however can still be downloaded for free.

  • Speed SQL IDE Pro

Connecting MS SQL Server with MS Visual Source Safe and other Version Control Systems for Total SQL Source Control. This product is now owned by Quest. They no longer sell or support it in favor of their new Toad for SQL Server product. There are several other products similar to Speed SQL IDE Prod. ApexSQL Edit is is a tool with many similar features to SpeedSQL IDE Pro and is still supported by ApexSQL.

  • TSASG SSAnalyzer

A SourceSafe add-on tool that aims to reduce maintenance costs by identifying and correcting duplicated and near duplicated files, as well as inappropriately branched files.

  • Visual SourceVizor

A SourceSafe add-on that provides E-mail notifications, reports on SourceSafe activity, control of working folders override and other functionality.

  • VSS Data Export Tool

This is a tool to export the metadata of VSS files to a database like Access or SQL Server, for further analysis.

  • VSS Remoting

Access remote SourceSafe databases through an internet connection. Integrations with Visual Studio, Macromedia Studio MX and Borland Delphi.

  • VSS.net

Allows one to use Visual SourceSafe over the Internet by HTTP and .NET WinForms.

  • VssConnect

Remote SourceSafe access using low bandwidth internet connections.

[edit] 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 reported [1], [2], that very few projects within Microsoft rely on VSS, and that the predominant tool is SourceDepot. "Microsoft itself used an internally developed version of RCS named SLM until 1999, when it began using a version of Perforce named SourceDepot."[3] The Microsoft Developer Division is now using the new Visual Studio Team System for most of its internal projects[3], although a VSS transcript implied that other large teams use "a mix of customized in-house tools."

[edit] SourceSafe's future

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[4], however is not included with Visual Studio 2008 Team System. It can be purchased separately as a retail product and is part of certain MSDN subscriptions.

However, Microsoft also introduced a source control and project lifecycle management product called Visual Studio Team Foundation Server, which is part of Visual Studio Team System. This product addresses many of Visual SourceSafe's shortcomings, making it suitable for larger teams requiring high levels of stability and control over activities.

According to the Visual SourceSafe Road Map and between-the-lines reading of a VSS transcript, Visual Source Safe is targeted towards individual developers or small teams with lightweight SCM needs. Microsoft is encouraging everyone else to migrate to the more sophisticated Visual Studio Team System.

[edit] See also

[edit] References

  1. ^ Company News; Microsoft Says It Has Acquired One Tree Software. The New York Times (November 16, 1994). Retrieved on 2007-11-21.
  2. ^ Running Visual Sourcesafe under Linux
  3. ^ Doar, Michael B. (2005). Practical Development Environments. p.74: O'Reily. ISBN 0596007965. 
  4. ^ VS 2008 and SourceSafe Q&A

[edit] External links

[edit] Books on Visual SourceSafe

[edit] Chats

On August 5, 2004 and December 29, 2004 the Visual SourceSafe product team hosted online chats on MSDN to answer questions about Visual SourceSafe 6.0 and the upcoming Visual SourceSafe 2005. Transcripts of these chats are now available: