VSS 转换器疑难解答
更新:2007 年 11 月
本节介绍使用 VSS 转换器从 Microsoft Visual SourceSafe 2005 迁移至 Team Foundation 版本控制 的常见问题的疑难解答信息。
本节内容
磁盘空间限制
注册了错误的 Ssapi.dll 版本
由于 VSS 损坏和 IVSS 问题,文件和文件夹版本未迁移
VSS 转换器不是对所有 Visual SourceSafe 方案都提供支持
迁移过程中 Team Foundation 数据层磁盘空间不足
VSS 转换器停止
用户运行 VSS 转换器的密码过期
打开迁移的解决方案文件时的错误消息
磁盘空间限制
如果运行 VSS 转换器的计算机磁盘空间不足,则会显示以下错误:
VSS Error: Disk out of space
解决方案
在迁移过程中,VSS 转换器将文件下载到系统驱动器的本地文件夹中,然后将这些文件上载到 Team Foundation。此外,VSS 转换器需要磁盘空间来存储日志文件、报告文件和 SQL Express 中的元数据。
如果发现磁盘空间不足,可以按 Ctrl-C 停止迁移。使用增量迁移功能可以从停止点重新启动迁移。但是,在重新启动迁移之前,系统驱动器上必须有额外的磁盘空间。
如果没有可用磁盘空间,您会看到迁移的文件大小为零。这种情况下,必须按 Ctrl+C 停止迁移并再次开始迁移。
建议在运行迁移的驱动器上保持 10GB 的可用磁盘空间。
注册了错误的 Ssapi.dll 版本
如果注册了错误的 ssapi.dll 版本,VSS 转换器会出现以下错误并崩溃:
Unable to cast COM object of type 'Microsoft.VisualStudio.SourceSafe.Interop.VSSDatabaseClass' to interface type 'Microsoft.VisualStudio.SourceSafe.Interop.IVSSDatabase'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{2A0DE0EE-2E9F-11D0-9236-00AA00A1EB95}' failed with HRESULT: 0x80004002 (No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))). Unhandled exception caught.
此外,VSS 转换器显示“VSS 转换器要求 Microsoft Visual SourceSafe 2005 或更高版本”或“未安装 Microsoft Visual SourceSafe 2005”错误消息,即使已安装 Microsoft Visual SourceSafe 2005 也是如此。
解决方案
VSS 转换器要求在执行迁移的计算机上安装 Microsoft Visual SourceSafe 2005 或更高版本。除 Microsoft Visual SourceSafe 2005 之外,如果安装了旧版本 Visual SourceSafe,也可能遇到这样的问题。如果注册的是旧版本 ssapi.dll 而不是 Microsoft Visual SourceSafe 2005 提供的 ssapi.dll,则会出现这一问题。若要解决这一问题,请卸载旧版本 Visual SourceSafe 和 Microsoft Visual SourceSafe 2005,然后仅重新安装 Microsoft Visual SourceSafe 2005。
由于 VSS 损坏和 IVSS 问题,文件和文件夹版本未迁移
如果由于 Visual SourceSafe 损坏和 IVSS 问题未迁移文件和文件夹版本,报告文件中可能出现很多错误和数据丢失警告。这是因为出现了以下一个或两个错误:
Visual SourceSafe 中的提示版本与 Team Foundation 中的提示版本不匹配。
Visual SourceSafe 中与标签关联的文件和文件夹版本与 Team Foundation 中的文件和文件夹版本不完全匹配。
解决方案
Visual SourceSafe 在长时间使用之后容易损坏。这种损坏可能导致 VSS 转换器无法迁移部分文件和文件夹版本。VSS 转换器使用 IVSS API 访问 Visual SourceSafe 数据库,而 Visual SourceSafe UI 和命令行不使用 IVSS。少数情况下,可以通过 UI 或命令行检索 Visual SourceSafe 版本,但不能通过 IVSS 检索这些版本。这些文件和文件夹版本的迁移可能失败。
成功迁移后,应对 Visual SourceSafe 中最新版本的文件和文件夹与 Team Foundation 版本控制 中最新版本的迁移的文件和文件夹进行比较,使用任何文件比较实用工具均可,例如 WinDiff 工具。如果发现文件和文件夹版本之间存在差异,请手动迁移最新版本。
说明: 迁移之后,在 Visual SourceSafe 中与标签关联的文件和文件夹版本与 Team Foundation 版本控制 中的文件和文件夹版本之间,没有任何方法可以进行匹配。
VSS 转换器不是对所有 Visual SourceSafe 方案都提供支持
VSS 转换器不是对 Visual SourceSafe 中的所有方案或操作序列都提供支持。如果提示或标签不匹配,则报告文件中可能出现很多错误,也可能无任何错误。检查迁移的文件和文件夹时,可能出现以下任一情况:
Visual SourceSafe 中的提示版本与 Team Foundation 版本控制 中的最新版本不匹配。
Visual SourceSafe 中与标签关联的文件和文件夹版本与 Team Foundation 版本控制 中的文件和文件夹版本不完全匹配。
使用了错误的名称迁移文件和文件夹。
VSS 转换器不支持的部分 Visual SourceSafe 方案为:
多次重命名和移动文件或文件夹。
将存档文件夹还原到相同或不同 Visual SourceSafe 数据库中的其他文件夹。
时区问题可能引起问题。VSS 转换器会修复部分可能出现的时区问题,但不能修复所有问题。有关时区问题的更多信息,请参见 Microsoft 知识库文章“BUG:Using SourceSafe in Multiple Time Zones”(BUG:在多个时区中使用 SourceSafe)(https://go.microsoft.com/fwlink/?LinkId=59976)。
解决方案
成功迁移后,应对 Visual SourceSafe 中最新版本的文件和文件夹与 Team Foundation 版本控制 中最新版本的迁移的文件和文件夹进行比较,使用任何文件比较实用工具均可,例如 WinDiff 工具。如果发现文件或文件夹版本之间存在差异,应手动迁移最新版本。
说明: |
---|
迁移之后,在 Visual SourceSafe 中与标签关联的文件和文件夹版本与 Team Foundation 版本控制 中的文件和文件夹版本之间,没有任何方法可以进行匹配。 |
迁移过程中 Team Foundation 数据层磁盘空间不足
如果在迁移过程中 Team Foundation 数据层磁盘空间不足,控制台将重复显示以下错误:
无法迁移到 Team Foundation 错误: SQL 错误 xxxx 磁盘空间不足。[Unable to migrate to Team Foundation Error: SQL error xxxx disk out of space.]
Team Foundation 没有响应。[Team Foundation is not responding.] 正在重试……
无法迁移到 Team Foundation 错误: SQL 错误 xxxx 事务日志已满。[Unable to migrate to Team Foundation Error: SQL error xxxx Transaction Log full.] TF30042: 数据库已满。请与 Team Foundation Server 管理员联系。
解决方案
源代码管理数据存储在 Team Foundation 的数据层。由于 VSS 转换器会持续数小时或数天迁移数月或数年的历史记录,因此数据层有时会磁盘空间不足。
可以使用增量迁移功能,从停止处重新开始迁移。有关更多信息,请参见如何:以增量方式迁移到 Team Foundation。但是,再次启动迁移之前,数据层上必须有额外的磁盘空间。
如果事务日志已满,则必须删除其内容进行清除。
重要说明: 清除事务日志之前,请进行备份。
VSS 转换器停止
系统崩溃、运行 VSS 转换器的计算机由于电源故障而重启、安全更新或其他原因,都可能造成 VSS 转换器停止。
解决方案
可以使用增量迁移功能,从停止处重新开始迁移。有关更多信息,请参见如何:以增量方式迁移到 Team Foundation。但是,您必须检查 VSS 转换器失败是暂时问题还是持久性问题。如果是持久性问题,则必须手动修复 Visual SourceSafe 中导致失败的元素的历史记录。
用户运行 VSS 转换器的密码过期
如果用户密码过期,则反复显示消息“Team Foundation 没有响应。正在重试...”。* 此外,日志文件列出未经授权的访问的 SoapException 或权限拒绝错误。
解决方案
如果运行 VSS 转换器的用户标识的密码过期,请按 Ctrl+C 停止迁移。注销后使用新密码重新登录。可以使用增量迁移功能,从停止处重新开始迁移。有关更多信息,请参见如何:以增量方式迁移到 Team Foundation。
打开迁移的解决方案文件时的错误消息
如果还未更新迁移文件的源代码管理绑定,用户试图打开绑定到 Visual SourceSafe 数据库的解决方案文件时,会显示一条错误消息。
解决方案
VSS 转换器不更改解决方案文件中的源代码管理绑定信息。因此,解决方案文件仍从 Team Foundation 绑定到 Visual SourceSafe。
若要进行更正,则必须将源代码管理绑定从 Visual SourceSafe 迁移至 Team Foundation 版本控制。有关更多信息,请参见如何:从 Visual SourceSafe 中迁移源代码管理绑定。
说明: |
---|
暂时的网络问题或 Team Foundation Server 关闭,也会导致打开解决方案文件时出现问题。 |
请参见
任务
演练:从 Visual SourceSafe 迁移到 Team Foundation