Visual SourceSafe File System Plugin

The Merge plugin for Visual SourceSafe is included with Merge and enables Merge to access files located within a Visual SourceSafe database. You must also install the Visual SourceSafe client tools on your computer.

System requirements

The plugin has been tested with Visual SourceSafe v6.0d.

Visual SourceSafe only provides a 32-bit version of its API. Consequently, the Merge plugin for Visual SourceSafe only works with the 32-bit version of Merge and is not supported with the 64-bit version.

What you can do with the plugin

Using the plugin, you can (for example) perform a folder comparison to compare your Visual SourceSafe working directories against the database. Alternatively, you could directly compare different branches (or the same branch at different points in time) within the database.

The plugin also enables Merge to populate the Versions Versions button button drop-down versions menu appropriately. For more information, see Comparing Text Files (or Typed/Pasted Text).

The plugin provides read-only access to the Visual SourceSafe database. To modify files within the database, you will need to use one of the Visual SourceSafe tools to open/edit/submit files.

Preparing Merge to use the plugin

Merge needs credentials to access the Visual SourceSafe servers that you use. Provide these on the Credentials options page. (For anonymous access to a Visual SourceSafe server, add an entry for the server to the Credentials page with a blank User name and Password.)

Finally, if you wish Merge to populate the Versions Versions button button drop-down versions menu with any other revisions of the files or folders you are comparing, ensure that the Options…ApplicationShow file versions from SCM systems option is checked.

Using the Visual SourceSafe plugin

To specify a file or project within a Visual SourceSafe database, prefix the path to the file or project with vss: to form a URI.

A user name, password, and port number can be included in the URI, as shown in the examples below.

It is possible to use \* as a password placeholder (e.g. vss://jrs:*@c:\vss\srcsafe.ini/$/notepad/notepad.cpp). This prevents passwords appearing visibly on the screen. In this case, the server list is checked for an entry containing a server c:\vss\srcsafe.ini and a user name jrs, and the password from that entry is used to make the connection.


URI Description
vss://$/notepad Specifies the most recent version of the project $/notepad.
vss://$/notepad/notepad.cpp Specifies the most recent revision of the file $/notepad/notepad.cpp.
vss://$/notepad;2000/03/23 Specifies the project $/notepad, as it was on 23 March 2000. Please note that the only supported date and time format is the locale-independent format YYYY/MM/DD[ HH:MM:SS].
vss://$/notepad;5 Specifies revision 5 of the project $/notepad.
vss://$/notepad/notepad.cpp;43 Specifies revision 43 of file $/notepad/notepad.cpp.
vss://jrs@c:\vss\srcsafe.ini/$/notepad/notepad.cpp As above, but connecting to a database whose SRCSAFE.INI is located at c:\vss\srcsafe.ini, as user jrs with no password.
vss://jrs:mypass@c:\vss\srcsafe.ini/$/notepad/notepad.cpp As above, but specifying a password mypass.
vss://jrs:*@c:\vss\srcsafe.ini/$/notepad/notepad.cpp As above, but specifying that Merge should use the relevant password from the Credentials options page. This ensures that the password is not shown on the screen or within comparison reports.

Information If a user name is specified, a path to the SRCSAFE.INI file must also be specified.

Accessing files and folders already in your client workspace

If files or folders are already synced in your client workspace, you access them as you would any other file or folder on your hard disk. You do not need to use a vss:// URI to do so.

If the appropriate credentials have been configured on the Credentials options page, Merge will endeavour to populate the Versions Versions button button with any older revisions of the file you are comparing.

Known problems

The Visual SourceSafe API does not provide a way to obtain the sizes of files within the database. Merge assumes a file size of 1 kilobyte for all files in the database.

The Visual SourceSafe API is not very robust. In particular, if two or more folder comparisons attempt concurrently to access the same SourceSafe database, some of the file operations may fail. Failed file comparisons can be re-attempted using the Re-test selected Re-test selected button command.