我正在尝试将一个大型项目的完整历史从Visual SourceSafe 2005迁移到TFS 2013。我在Visual Studio 2013中安装了向导,并且正在从本地机器迁移到远程办公室的TFS服务器。
向导遍历visualsourcesafe中的历史,并从VSS签入组中创建TFS更改集。迁移会一直顺利进行,直到到达一大组文件,其中一些是大型二进制文件,然后给出以下错误:
然后,向导将进入一个循环,等待一段时间,重试,然后遇到错误,直到我取消迁移。"[Error @time_of_error]: The request was aborted: The请求被取消。"
当尝试使用Visual Studio手动向TFS提交一组大型二进制文件时,也会出现同样的错误。我不能提交一组总计252 MB的文件。下面这个链接给出的答案告诉我,减少http块大小可以做到这一点。
包含"large "的更改集的TFS检入超时二进制文件
添加…
<add key="VersionControl.UploadChunkSize" value="1048576" />
到"C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEdevenv.exe"的"appSettings"部分。
将块大小减少到1 MB,并允许我使用Visual Studio 2013提交一组总计1.16 GB的二进制文件。我的理论是向导将一大组文件放入变更集,并试图将该变更集提交给TFS。但是,如果其中一个文件没有在超时时间内达到块大小,则提交失败并导致向导进入循环。
我添加了修复devenv.exe.config和TF.exe。配置,重新启动迁移,并遇到相同的超时错误。我能够在Visual Studio中手动提交问题变更集,而向导则不能。
我的问题:
是否有可能改变微软的VSS升级向导执行HTTP分块的方式?(我对dev .exe.config和tf.exe.config的更改似乎没有影响)
我在VSS升级程序文件中发现了两个配置文件:
VssToTfs.exe。config and VssUpgrade.exe.config
,然后在配置中添加缺失的部分:
<appSettings>
<add key="VersionControl.UploadChunkSize" value="512000" />
</appSettings>
这样做之后,迁移继续并完成,没有遇到超时错误。对于我来说,将http分块值减少到500kb允许VSS升级向导提交迁移中涉及的大型更改集。