Archive for the ‘Visual SourceSafe’ Category


ABOUT
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).

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. 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.

OVERVIEW
SourceSafe was initially not a client/server Source Code Managemment (SCM), but rather a local 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 (Concurrent Versions System(CVS) has the same problem as it is built upon the original Revision Control System(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 Sever Message Block (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.

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.Further strong points include its integration with Microsoft Visual Studio, its easy-to-use interface, and the fact that it is included as part of certain MSDN Subscriptions.

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. The optimal environment is that in which a small team of developers is accessing repository content via a LAN. 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. 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 have used Visual SourceSafe successfully for several years without experiencing any corruption. 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. For larger development teams, however, Microsoft suggests its new flagship SCM product, Team Foundation Server.

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

  • 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 used to offer (until about 2001) a Macintosh client based on Microsoft’s own source code, Visual SourceSafe for Macintosh.
  • SourceGear offers a SourceSafe add-on product SourceOffSite that includes clients for Linux, Macintosh and Solaris.

Visual SourceSafe 6 has been reported to work on Linux under a Wine compatibility layer. Additionally, SSU is an Open Source alternative which offers functionality similar to SourceOffsite on POSIX (Portable Operating System Interface) platforms.

SourceSafe Add-on Tools
The various Soucesafe add-on tools are:

  • 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.


It’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, 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.

REFRENCES

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(http://www.kegel.com/).

3.  VSS transcript(http://msdn.microsoft.com/)

4.  VS 2008 and SourceSafe Q&A (http://msdn.microsoft.com/)

5.  Visual SourceSafe Road Map (http://msdn.microsoft.com/)