Overview of SSAnalyzer - Clean Up Duplicate File Names
The Duplicate File Name portion of SSAnalyzer addresses two common and potentially costly and problematic issues with how
users may incorrectly use Visual SourceSafe. They are:
SSAnalyzer provides all available information on like-named files in a single GUI so the user can quickly, easily and intelligently determine:
- If a problem does in fact exist.
- The extent of the impact of the problem.
- How best to resolve the problem
- Tools to quickly apply the resolution
- Means to track what resolution was applied.
To begin cleaning up duplicate file names, you should have previously completed the following steps:
- Created an SSAnalyzer database
- Imported transaction information for your VSS repository to the SSAnalyzer database.
- Login to the SSAnalyzer database.
To access the the duplicate file name GUI, follow main menu
CleanUp -> Duplicate Names. Once the option
is selected, the user will be presented with the following screen:

View larger screenshot
This screen is divided into four primary areas. Each of these areas can be resized using the splitter bars. In order of detail from top-left to bottom right, these areas are:
- File Group summary - this provides the ability for the user to focus on specific types of files (based on the file extension).
The user should expect that most problem files will fall under the various source code file groups. (The user
can create new or modify existing file groups. See Database -> Edit Support Tables.)
- Unique file names - This area has one entry for each unique file name.
Each entry contains the following useful information:
| ColHdr | Meaning | Definition | Notes |
| FileName | FileName | The unique file name | |
| Cnt | Count | Number of physical files that share the file name | |
| SigCnt | Significant Count | Number of active (non-deleted) files that share the file name | |
| Links | Links | Total number of links VSS reports that these files are used in. | |
| Actv | Active Links | Total number of active links VSS reports that these files are used in | |
| Br# | Branch Count | Number of files that were created due to explicit branches | |
| RB# | Rollback Count | Number of files that were created due to implicit branches (rollbacks) | |
| Actions | Actions | Number of unique files for which SSAnalyzer could determine a definite action to be taken | Populated after user performs Scan for replacements |
| Revu | Reviews | Number of unique files for which SSAnalyzer determined a possible action which needs user review and approval | Populated after user performs Scan for replacements |
| NAs | No Action Count | Number of unique files for which SSAnalyzer could not or would not determine an action | Populated after user performs Scan for replacements |
- Selected file name - This area contains details for each physical file with the selected file name:
| ColHdr | Meaning | Definition | Notes |
| FID | FileID | SSAnalyzer's internal unique identifier of the physical file. | |
| Act? | Active? | Indicates whether or not this file has any active links | Y - Actv > 0, else - N |
| Lnks | Links | Number of links VSS reports for this unique file. | |
| Actv | Active Links | Number of active links VSS reports for this unique file. | |
| VerCnt | Version Count | Number of versions | |
| InitVer | Initial Version | Initial version of this file | Will be one (1) unless the file was branched and/or rolled back |
| MxVer | Max Version | Maximum (or current) version of the file | |
| InitVerDate | Initial Version Date | Date the initial version was created | |
| MxVerDate | Max Version Date | Date the max version was created | |
| Cr? | Create Action | One of three ways to create a new physical file in VSS | - Create/Add - this is a new file that is either explicitly created in VSS or explicitly added to VSS. Entry will be blank.
- Branch - user performed an explicit Branch action in VSS. Entry will contain B.
- Rollback - user performed an implicit Branch via an explicit Rollback. Entry will contain R.
|
| Match % | Match Pct | Percent that this file matches the Primary file | |
| Diff # | Diff Count | Number of lines that are effectively different between this file and the Primary file | It is possible to have DiffCount = 0 and Match Pct < 100%. This simply means the unmatched portions are not effective |
| RpFID | Replacement FID | FID of replacement file | |
| RpAct | Replacement Action | Replacement Action | |
| RpPin | Replacement Pin Version | Version to be pinned if Action is Replace & Pin | |
| RpMxVer | Replacement Max Version | Max version of Replacement File | For quick comparison to MxVer |
| RpLnk | Replacement Link Count | Number of active links for Replacement File | For quick comparison to Actv |
| RpVer | Replacement Version | Current version of Replacement File | ?? |
- Projects - This area contains details for each project/link that uses the highlighted entry in the Selected file
name area. Details include:
| ColHdr | Meaning | Definition | Notes |
| Name | Project Name | Full name of the project | |
| MnVerDate | Minimum Version Date | Date the project was created | |
| MxVerDate | Maximum Version Date | Date of most recent change to project | |
| Pin# | Pinned at | Version at which Selected File is pinned | 0 if not pinned |
| Act? | Active? | Contains N if file is not active, else blank | Contains N if the file is not active (deleted or deleted in chain) within this project. Note that it is possible for a single project to have two files of the same name if one is deleted and one is active. However, you will not see them both listed simultaneously in this screen because they would have different File IDs. |
| Del? | Deleted? | Will have Y if file is deleted | It is possible that a file will not be deleted and still not be active. This happens if the project or an ancestor project is deleted (deleted-in-chain). |
| DelDate | Date deleled | If file is deleted, then this contains the date the file was deleted | |
| DelInChain | Deleted in Chain | If the project or any ancestor projects have be deleted, then the will contain Y | When deleted-in-chain, the file is considered inactive |
| | | |
|