SS2XML
ver. 0.821

SS2XML is a simple set of utilities to extract all the meta-information (not the file contents) from a Visual SourceSafe database and store it in an XML format. This was written primarily to facilitate several types of searches that could not be done directly in SourceSafe. It it primarily used to get all the changes after a particular label. In order to provide compact output, it normally only outputs files (or required projects) that have changed since that label.

I frequently find that I need to locate all of the files that were checked in with a particular comment (or with a particular string in their comment). This tool was written to handle those types of searches.

It's licensed under the Apache License, Version 2.0. Feel free to use it and modify it for your own needs. If you add features, or (especially) if you find bugs, please let me know.

The software is written in JavaScript to be run under Windows using Windows Scripting Host or an HTML Application (HTA). It uses the SourceSafe COM (ActiveX) interface to access the data. There are several small aplications in this distribution.

ss2xml.wsf

This is a command line tool to extract SourceSafe data to XML. It is a Windows Scripting Host application run with cscript. Try "cscript ss2xml.wsf" to see the command line parameters. (note: you can use "cscript //H:CScript" to change the default script host to cscript - then you can just type "ss2xml.wsf" to run the application. Also note the //NoLogo option to suppress some annoying messages). The bulk of the work is done in ss2xml.js.
Command line help:

Reads information from a Visual SourceSafe database and writes it to XML
Usage: ss2xml.wsf /dbpath:value [/user:value] [/pass:value] /location:value /outfile:value [/afterlabel:value] [/skiplabel:value] [/onlychanged] [/quiet]

Options:

dbpath      : Path to SourceSafe database (include .ini file)
user        : SourceSafe user (defaults to guest)
pass        : Password (defaults to no password)
location    : Location in database
outfile     : file to write output to
afterlabel  : Only get history after this label
skiplabel   : skip any history from this label
onlychanged : Only export files with changes (may make results much smaller)
quiet       : Don't show status
Example: ss2xml.wsf /user:fred /dbpath:\\myvcs\project1\srcsafe.ini /location:$/someproject /outfile:results.xml         

ss2xml.hta

This is an HTML application (HTA) that provides the capability to extract SourceSafe data to XML. From Windows Explorer, just double click ont the ss2xml.hta file to run it. It also uses ss2xml.js to do most of the work.

sscheck.hta

This is a simple HTML application that provides a simple search facility for searching checking comments. It uses an XML file generated by either ss2xml.wsf or ss2xml.hta. It was developed to search for comments containing bug tracking information at my company. It may serve as a good example for you to make your own checking tool. It has a (currently) hardcoded regular expression to describe bug tracking numbers. It can find all the bug tracking information in the XML database, search checkin comments for a string, and find other files referenced by the tracking numbers in other changes from your original search.

ssusers.wsf

This is a command line tool to perform some SourceSafe administrative functions. Currently, all it can do is export a list users and their rights to XML.
Command line help:

Provides interface to some Visual SourceSafe administrative functions (ver. 0.84)
Usage: ssusers.wsf /dbpath:value [/pass:value] [/export:value] [/onlyroot] [/quiet]

Options:

dbpath   : Path to SourceSafe database (include .ini file)
pass     : Password (defaults to no password)
export   : File to export user information to. (stdout if none specified)
onlyroot : Only check privileges at the root.  Without this, a large system with Project Rights enabled can be slow.
quiet    : Don't show status
Example: ssusers.wsf /pass:adminpass /dbpath:\\myvcs\project1\srcsafe.ini /export:users.xml /onlyroot
Note that user is always the admin user.