Tips for a successful VSS Import
Moderator: SourceGear
We still recommend VSS 6.0c with the Microsoft Hotfix from this link:
http://download.sourcegear.com/files/vss_60c_hotfix.zip
This version's automation component has been tested extensively with SourceGear products and tends to be the most reliable.
Later versions of VSS are not necessarily better for the import. For instance, the threading model was changed in VSS 6.0d (ssapi.dll version ending in 98.48 ) which causes that Automation Component to crash during concurrent operations.
http://download.sourcegear.com/files/vss_60c_hotfix.zip
This version's automation component has been tested extensively with SourceGear products and tends to be the most reliable.
Later versions of VSS are not necessarily better for the import. For instance, the threading model was changed in VSS 6.0d (ssapi.dll version ending in 98.48 ) which causes that Automation Component to crash during concurrent operations.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
Visual Source Safe 8.0
Is using VSS 8.0 just as good as version 6.0c or is the latter still recommended?
Another question that I have is about exporting VSS. Does the VSS dababase needs to be locked, or can people continu to use VSS while exporting?
Thanks in advance,
Adje
Another question that I have is about exporting VSS. Does the VSS dababase needs to be locked, or can people continu to use VSS while exporting?
Thanks in advance,
Adje
Is using VSS 8.0 just as good as version 6.0c or is the latter still recommended?
We have done some testing with VSS 8.0, though not as thoroughly as with 6.0c. We didn't run into any problems, so you should be able to do your import with VSS 8.0.
It's best if users are locked out of VSS during the import. You don't want modifications being made to the VSS database while the VSS import tool is running.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
Import Tool throws exception
Hi all,
Since people have been asking questions in this thread, hopefully this is in the right place.
I've been attempting to import our VSS database into Vault. Anytime I do so, I get the following exception in the log file:
Beginning Export. 29/09/2006 4:56:24 PM
Begin Export....
Unhandled exception during export: Process performance counter is disabled, so the requested operation cannot be performed.
Trace: at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library)
at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine)
at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName)
at System.Diagnostics.Process.EnsureState(State state)
at System.Diagnostics.Process.get_PrivateMemorySize()
at VSSImport.WizardForm.ExportPassTwo(Hashtable vssUsers)
at VSSImport.WizardForm.Export()
Logged out of the Vault Server.
1. I have a copy of the VSS database on the same machine that I'm running the import tool on.
2. The Vault Server is on the same machine that I'm running the import tool on.
3. We're running Vault 3.1.8.3771
4. I'm logged onto the machine with an account that's a machine admin.
5. ASP.NET is running under a domain account (for Active Directory Auth), and is also a member of local machine admin.
6. I've got VSS 6.0c on the machine.
The import tool completes and says that there were no errors, but the log file shows different. Nothing is imported at all.
I've been banging away at this for the better part of the day, so any help would be appreciated.
Thanks and Regards,
Brendan Green
Since people have been asking questions in this thread, hopefully this is in the right place.
I've been attempting to import our VSS database into Vault. Anytime I do so, I get the following exception in the log file:
Beginning Export. 29/09/2006 4:56:24 PM
Begin Export....
Unhandled exception during export: Process performance counter is disabled, so the requested operation cannot be performed.
Trace: at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library)
at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine)
at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName)
at System.Diagnostics.Process.EnsureState(State state)
at System.Diagnostics.Process.get_PrivateMemorySize()
at VSSImport.WizardForm.ExportPassTwo(Hashtable vssUsers)
at VSSImport.WizardForm.Export()
Logged out of the Vault Server.
1. I have a copy of the VSS database on the same machine that I'm running the import tool on.
2. The Vault Server is on the same machine that I'm running the import tool on.
3. We're running Vault 3.1.8.3771
4. I'm logged onto the machine with an account that's a machine admin.
5. ASP.NET is running under a domain account (for Active Directory Auth), and is also a member of local machine admin.
6. I've got VSS 6.0c on the machine.
The import tool completes and says that there were no errors, but the log file shows different. Nothing is imported at all.
I've been banging away at this for the better part of the day, so any help would be appreciated.
Thanks and Regards,
Brendan Green
This error could be due to a setting in the registry.Process performance counter is disabled, so the requested operation cannot be performed.
Please look under this registry key on your machines: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance
and see if there is an entry named "Disable Performance Counters."
If so, remove it and see if the import can proceed.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
-
- Posts: 28
- Joined: Wed Mar 01, 2006 5:11 am
Ever since the first release of Vault I've been trying to get our broken 30GB VSS database to import. I know there's not a snowball's chance of getting the whole thing across in one go, but I've finally managed to get something across for the first time
I found a couple of the points below by searching the forums for obscure error messages, so I've collected them in one place. Hopefully, it might help someone with a successful import:
1) Use a proper installation of VSS. In previous testing, I'd been using a Netsetup installation, and the best I got was to import the project tree but no files. As soon as I installed VSS from the original CD, I got everything!
2) Turn off project security. In our database, I'd noticed that some users had rights for projects which no longer existed. Recreating security in Vault using groups is probably a good idea for easier management.
3) Fill the import machine with memory. Large imports are memory-hungry. Just one project in our database needed over a gig of RAM to import.
4) Use the fastest processor and memory possible. The import pre-scan seems to only use one CPU, so make it a good one
5) Import from a copy of the database, having first deleted and purged anything you don't want to bring over. For some reason, you can't select more than one project to import at a time, which is a shame. [edit] An alternative solution is to move (not share) everything you want to import into a new project, then import this new project.
6) Run analyze -f -c. Run it again if it finds errors the first time. If possible, use VSS 2005's analyze -fp -s -c -v4, as it seems to find and fix more things.
7) Monitor the import log file during the pre-scan. If you see any errors, appearing, you may want to stop to investigate the errors rather than waiting hours or days only to find that the import doesn't work properly. tail.exe (comes with cygwin, but there are other stand-alone freebies out there) is good for real-time monitoring.
I found a couple of the points below by searching the forums for obscure error messages, so I've collected them in one place. Hopefully, it might help someone with a successful import:
1) Use a proper installation of VSS. In previous testing, I'd been using a Netsetup installation, and the best I got was to import the project tree but no files. As soon as I installed VSS from the original CD, I got everything!
2) Turn off project security. In our database, I'd noticed that some users had rights for projects which no longer existed. Recreating security in Vault using groups is probably a good idea for easier management.
3) Fill the import machine with memory. Large imports are memory-hungry. Just one project in our database needed over a gig of RAM to import.
4) Use the fastest processor and memory possible. The import pre-scan seems to only use one CPU, so make it a good one
5) Import from a copy of the database, having first deleted and purged anything you don't want to bring over. For some reason, you can't select more than one project to import at a time, which is a shame. [edit] An alternative solution is to move (not share) everything you want to import into a new project, then import this new project.
6) Run analyze -f -c. Run it again if it finds errors the first time. If possible, use VSS 2005's analyze -fp -s -c -v4, as it seems to find and fix more things.
7) Monitor the import log file during the pre-scan. If you see any errors, appearing, you may want to stop to investigate the errors rather than waiting hours or days only to find that the import doesn't work properly. tail.exe (comes with cygwin, but there are other stand-alone freebies out there) is good for real-time monitoring.
Last edited by mbainbridge on Fri Dec 08, 2006 5:51 am, edited 1 time in total.
Thanks for the tips. I'm sure they'll be helpful to other users.
It's a good idea to monitor the logs. I wasted a weekend on an import that appear to be running fine. When I reviewed the logs, I found the Vault server log reported a SQL timeout 7 hours into the import and after that, nothing was committed, even though the Vault Import Tool was plugging away. The import log showed commit failures, too.
I was able to restart IIS, which restarted the Vault server and the import started uploading files again. But by then too many files had been skipped because of upload failures.
It's a good idea to monitor the logs. I wasted a weekend on an import that appear to be running fine. When I reviewed the logs, I found the Vault server log reported a SQL timeout 7 hours into the import and after that, nothing was committed, even though the Vault Import Tool was plugging away. The import log showed commit failures, too.
I was able to restart IIS, which restarted the Vault server and the import started uploading files again. But by then too many files had been skipped because of upload failures.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
importing VSS
OK, I think I have everything I need to start importing, except that I can't see how to export projects from VSS.
Google returns a tool that exports only metadata.
VSS Help doesn't admit to knowing anything about exporting.
I don't want to import this whole thing at once. Definitely need to be broken up. What's the trick?
BTW, extra thanks for the help since VSS isn't even your software.
Brad.
Google returns a tool that exports only metadata.
VSS Help doesn't admit to knowing anything about exporting.
I don't want to import this whole thing at once. Definitely need to be broken up. What's the trick?
BTW, extra thanks for the help since VSS isn't even your software.
Brad.
Download the contents of this archive:
http://download.sourcegear.com/files/vss_60c_hotfix.zip
Then replace the contents of the VSS 6.0d win32 directory with the contents of the archive. The key element to replace is the SourceSafe Automation Component -- ssapi.dll. The VSS Import Tool communicates with the VSS database through this automation component, so the version makes a difference.
http://download.sourcegear.com/files/vss_60c_hotfix.zip
Then replace the contents of the VSS 6.0d win32 directory with the contents of the archive. The key element to replace is the SourceSafe Automation Component -- ssapi.dll. The VSS Import Tool communicates with the VSS database through this automation component, so the version makes a difference.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
Hi, I downloaded the zip. Inside it, there was a bunch of files, and a subdirectory called "hotfix". Inside the "hotfix" subdirectory, there was no ssapi.dll, which you have said is the important file.lbauer wrote: replace the contents of the VSS 6.0d win32 directory with the contents of the archive. The key element to replace is the SourceSafe Automation Component -- ssapi.dll.
So one more time please. What to do with the zip file contents? Is the "hotfix" subdirectory a red herring, or does the stuff in there go over top afterwards?
If the "hotfix" subdirectory is not needed, how about removing it from the zip file. If the ssadmin.exe and ssexp.exe in the hotfix subdirectory are supposed to go over the top, how about just doing that before zipping it up? and again removing the "hotfix" subdirectory.
Thanks,
Suggested change to VSS Import tool
I had to selectively import about a dozen projects out of a larger sourcesafe repository. Each time I had to go through a bunch of prompts to get back to the import screen. Either a multi select or at the very least a prompt after each import to allow you to select another folder to import with the same settings would have made this go a lot faster.
Change solution/project from VSS to Vault after import
Now that the solutions/projects are imported from VSS, how are the source control (SCC) bindings changed and updated to Fortress/Vault?
In VS2005 removing the SCC bindings and setting the SCC to Fortress/Vault is simple. Then "Add Solution to Fortress" is available. But it wants to add new entries in the database, not update the existing directories and files that were Imported.
If this has been documented somewhere or in the forums, please provide a link. My searches have not found this specific information.
UPDATE: Answer is not to "Add", but after changing SCC to Fortress/Vault return to the bindings and also set them to Fortress/Vault. Go to File -> Fortress Source Control -> Change Fortress Bindings. Set the bindings and it will checkout/checkin to the VSS Import.
Hope this helps others.
In VS2005 removing the SCC bindings and setting the SCC to Fortress/Vault is simple. Then "Add Solution to Fortress" is available. But it wants to add new entries in the database, not update the existing directories and files that were Imported.
If this has been documented somewhere or in the forums, please provide a link. My searches have not found this specific information.
UPDATE: Answer is not to "Add", but after changing SCC to Fortress/Vault return to the bindings and also set them to Fortress/Vault. Go to File -> Fortress Source Control -> Change Fortress Bindings. Set the bindings and it will checkout/checkin to the VSS Import.
Hope this helps others.