2

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

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

“[错误@time_of_error]:请求被中止:请求被取消。”

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

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

TFS 检查包含“较大”二进制文件的变更集的超时

添加...

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

到“C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config”的“appSettings”部分将块大小减少到 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 的更改似乎没有什么不同)

4

1 回答 1

2

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

VssToTfs.exe.configVssUpgrade.exe.config

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

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

这样做之后,迁移继续并完成,没有遇到超时错误。就我而言,将 http 分块值降低到 500 kb 允许 VSS 升级向导提交迁移中涉及的大型变更集。

于 2014-06-16T14:09:20.180 回答