我是否可以更改VSS升级向导处理HTTP分块的方式,以防止在迁移到TFS 2013时出现超时错误?

时间:2014-06-13 14:40:33

标签: visual-studio tfs chunking visual-sourcesafe-2005 tfs-migration

我正在尝试将大型项目的完整历史记录从Visual SourceSafe 2005迁移到TFS 2013.我使用Visual Studio 2013安装了该向导,并从本地计算机迁移到远程办公室的TFS服务器。

该向导将浏览Visual SourceSafe中的历史记录,并从VSS签入组创建TFS更改集。迁移顺利进行,直到它到达一大组文件,其中一些是大型二进制文件,然后给出以下错误:

  

" [错误@time_of_error]:请求已中止:   请求已被取消。"

然后,向导将进入等待一段时间的循环,重试并运行错误,直到我取消迁移。

这是尝试使用Visual Studio手动将一组大型二进制文件提交到TFS时出现的相同错误。我无法提交一组总计252 MB的文件。下面这个链接给出的答案告诉我,减少http分块大小就可以了。

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

添加...

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

到&#34; appSettings&#34;部分&#34; C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ devenv.exe.config&#34;将块大小减少到1 MB,并允许我使用Visual Studio 2013提交一组总计1.16 GB的二进制文件。

我的理论是,向导将一大组文件放入变更集,并尝试将该变更集提交给TFS。但是,当其中一个文件在超时内未达到块大小时,提交将失败并导致向导进入循环。

我在devenv.exe.config和TF.exe.config中添加了修复程序,重新启动了迁移,并遇到了同样的超时错误。我能够在Visual Studio中手动提交问题变更集,而向导则不能。

我的问题:

是否可以更改Microsoft的VSS升级向导执行HTTP分块的方式? (我对devenv.exe.config和tf.exe.config的更改似乎没有什么区别)

1 个答案:

答案 0 :(得分:2)

我在VSS升级程序文件中找到了两个配置文件:

VssToTfs.exe.config VssUpgrade.exe.config

然后在配置中添加了缺少的部分:

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

执行此操作后,迁移继续并完成,而不会遇到超时错误。对于我的情况,将http分块值减少到500 kb允许VSS升级向导提交迁移中涉及的大变更集。