FAQ
Feedback
Resources
News Release - 2005.09.10
TSA Software Group (TSASG) announces the release of SSAnalyzer 1.0.

SSAnalyzer is a unique tool for Visual SourceSafe that will identify and assist the user in correcting improperly branched or duplicated files.

Using advanced text algorithms to identify non-effective file differences (formatting, comments, etc), SSAnalyzer displays effective vs. non-effective changes for closely matching files, making it much easier for the user to find those few REAL differences among thousands of lines of code.

Typical file and code redundancy can be reduced by an average of 20%, greatly reducing maintenance problems, increasing the speed of SourceSafe, and enhancing the accuracy of third-party source code reporting packages.

Frequently Asked Questions - FAQ

  1. What are the installation requirements for SSAnalyzer?
  2. How does SSAnalyzer stay in sync with SourceSafe?
  3. Won't SSAnalyzer get out of sync with my SourceSafe and cause problems?
  4. Do I need to lock-down my SourceSafe repository to use SSAnalyzer?
  5. Why do I sometimes encounter Replace/Pin failure and recovery?
  6. Why is SSAnalyzer so dependent of BCP (Bulk Copy)?
  7. Why won't some files and projects purge?

What are the installation requirements for SSAnalyzer?

SSAnalyzer is designed to work with Visual SourceSafe and use Microsoft SQL as a datastore. The specific requirements are:

  • Microsoft Visual SourceSafe 6.0d
  • access to SQL server with MS SQL 7.0 or later
  • MDAC 2.6 or later (MDAC 2.6 is standard on Windows 2000)
  • for import, version of odbcbcp.dll that matches the SQL server
[back to top]

How does SSAnalyzer stay in sync with SourceSafe?

The short answer is it doesn't in this initial version. SSAnalyzer creates a snapshot of how your SourceSafe repository looks at the time of import.

A future version will be server-based. Each database will be registered with the server. Via the information in the databases, SSAnalyzer will know which SourceSafe repositories to monitor.

For now, any actions taken via SSAnalyzer, using the SourceSafe API, (Replace and Pin, Share, Purge, File Rename) are tracked. Any SourceSafe actions taken via other means will be omitted until a user re-imports the SourceSafe data.

[back to top]

Won't SSAnalyzer get out of sync with my SourceSafe and cause problems?

Yes, it will get out of sync, but no it will not cause any problems in SourceSafe.

Any actions taken on your SourceSafe repository by SSAnalyzer are safe and are as recoverable as though there were done using Visual Sourcesafe. Specifically,

Purge File Not recoverable as it would not be recoverable using SourceSafe
Purge Project Not recoverable as it would not be recoverable using SourceSafe
Replace File Completely recoverable because, the old file is simply deleted and remains in your SourceSafe repository.

It should be noted that if a deleted file by same name as the file to be replaced exists in the affected project, then that deleted file will be purged and not be recoverable.

Replace & Pin File Same as Replace File.

Since most imports take only a few minutes, you should reimport whenever your data may be stale. The frequency will depend on how active your SourceSafe repository is.

[back to top]

Do I need to lock-down my SourceSafe repository to use SSAnalyzer?

No. SSAnalyzer works just like a very fast user. It uses the standard VSS OLE automation calls.

Additionally, SSAnalyzer checks for specific conditions that may affect a user's decision to perform a given action. If these conditions exist, then SSAnalyzer will not perform the indicated action. Specifically, if a file is checked out, either original or replacement, then the Replace or Replace and Pin actions will not be performed. Once the file is checked in, SSAnalyzer will permit the action to be performed. This provides a better degree of certainty to the user that the file has not changed during the decision process.

Of course, you can always use Visual SourceSafe to make any changes the SSAnalyzer will not allow.

[back to top]

Why do I sometimes encounter Replace/Pin failure and recovery?

TSASG worked on this issue with Microsoft for several weeks. The failure (and always successful recovery) was attributed to minor corruption within our test VSS repository. Neither Analyze.exe nor VssDataWiz.exe could detect a problem and the actions worked fine using the VSS GUI. So Microsoft and TSASG agreed that the problem was some minor corruption that the tools could not detect and that the SSAPI could not deal with.

If you encounter any such errors, carefully note what project files need to be shared and pinned, then perform those actions using VSS. This will cause SSAnalyzer to get out of sync with VSS, but a reimport will correct this.

These conditions were rare and completely recovered automatically by SSAnalyzer.

[back to top]

Why is SSAnalyzer so dependent of BCP (Bulk Copy)?

Speed! Bulk copy cuts import time by about 80% over single record inserts/updates.

Since most PCs keep drivers in-sync through good system admin, TSASG decided to take advantage of that fact by using bulk copy and save time for most users. For those users with systems out-of-sync with their servers, it is typically something that has gone unnoticed and should be corrected.

If this becomes a problem in the future, TSASG will consider adding an option for the much slower, single-record inserts/updates.

[back to top]

Why won't some files and projects purge?

We have only seen this occur on files that end with a '$' (dollar-sign). Microsoft has no specific error for this, but the VSS support team believes it is a problem with the SSAPI.dll.

If you encounter this, simply note the items to be purged, and do so using the VSS GUI.

[back to top]

Contact us Privacy Copyright © 2005 TSA Software Group