Search code examples
visual-studiotfschunkingvisual-sourcesafe-2005tfs-migration

Can I change how VSS Upgrade Wizard handles HTTP chunking to prevent timeout errors while migrating to TFS 2013?


I am attempting to migrate the full history of a large project from Visual SourceSafe 2005 to TFS 2013. I installed the wizard with Visual Studio 2013 and am migrating from my local machine to a TFS Server at a remote office.

The wizard goes through the history in Visual SourceSafe and creates TFS changesets from groups of VSS check-ins. The migration goes along smoothly until it reaches a large group of files, some of which are large binaries, and then gives the following error:

"[Error @time_of_error] : The request was aborted: The request was canceled."

The wizard will then go into a loop of waiting for period of time, retrying, and running into the error until I cancel the migration.

This is the same error that will show up when trying to manually commit a group of large binaries to TFS using Visual Studio. I couldn't commit a group of files totaling 252 MB. The answer given in this link below informed me that decreasing the http chunking size would do the trick.

TFS check in timeout of changeset containing "larger" binary files

Adding...

<add key="VersionControl.UploadChunkSize" value="1048576" />

to the "appSettings" section of "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config" reduced the chunk size to 1 MB and allowed me to use Visual Studio 2013 to commit a group of binaries totaling 1.16 GB.

My theory is that the wizard puts a large group of files into a changeset and attempts to commit that changeset to TFS. However, when one of the files does not reach the chunk size within the timeout, the commit fails and causes the wizard to go into the loop.

I added the fix to devenv.exe.config and TF.exe.config, restarted the migration, and ran into the same time out error. I am able to manually commit the problem changeset in Visual Studio while the wizard cannot.

My question:

Is it possible to change the way Microsoft's VSS Upgrade Wizard performs HTTP chunking? (My changes to devenv.exe.config and tf.exe.config don't seem to make a difference)


Solution

  • I found two configuration files among the VSS Upgrade program files:

    VssToTfs.exe.config and VssUpgrade.exe.config

    and then added the missing section in the configuration for both:

    <appSettings>
        <add key="VersionControl.UploadChunkSize" value="512000" />
    </appSettings>
    

    After doing so, the migration continued and finished without running into the timeout error. For my case, decreasing the http chunking value to 500 kb allowed the VSS Upgrade Wizard to commit the large changesets involved in the migration.