版本匹配
更新:2007 年 11 月
在使用 Migrate 命令运行 VSS 转换器时,文件将从 Visual SourceSafe 迁移到 Team Foundation。有时,一些意外情况可能会导致在迁移过程中出现错误。这会导致版本不匹配,即 Team Foundation 中文件的固定版本和最新版本与 Visual SourceSafe 中相同文件的固定版本和最新版本不匹配。为了检测和更正这些潜在的版本不匹配,VSS 转换器会在 Migrate 命令的最后阶段执行版本匹配。如果检测到了版本不匹配,则会对其进行自动修复。如果版本不匹配无法修复,则会在报告中列出。
固定版本匹配
完成文件迁移之后,VSS 转换器会验证是否正确迁移了固定文件版本。将对所有迁移的固定文件和非固定文件应用 PINNED_LATEST 标签。这可以确保在您获取使用 PINNED_LATEST 标记的文件时,这些文件与 Visual SourceSafe 中的“获取最新”相匹配。PINNED 标签仅应用于固定文件的固定版本。
VSS 转换器执行与 Visual SourceSafe 中的“获取最新”等效的操作,并将获取的文件与 Team Foundation 中获得标签 PINNED_LATEST 的文件相比较。如果检测到错误,则有三种可能的更正方法可供采用,如下表所示:
Visual SourceSafe 中的文件 |
Team Foundation 中的文件 |
相应的操作 |
---|---|---|
存在。 |
不存在。 |
从 Visual SourceSafe 获取固定版本,将其添加到 Team Foundation,然后对其应用 PINNED 和 PINNED_LATEST 标签。 |
不存在。 |
存在。 |
将 PINNED 和 PINNED_LATEST 标签从文件中移除。 |
存在。 |
存在但不同。 |
从 Visual SourceSafe 获取固定版本。将其从 Team Foundation 中签出。使用正确的版本替换它,然后再将其签入回去。最后对新版本应用 PINNED 和 PINNED_LATEST 标签。所有使用这种方式进行修复的版本不匹配都会作为一个变更集进行签入,并带有注释“由转换器提交以修复固定版本”。 |
在固定版本比较的版本匹配阶段,您会看到显示到控制台窗口的输出,如下所示:
正在验证固定版本…
正在验证固定版本: $/VSSFolder/a.c
正在验证固定版本: $/VSSFolder/b.c
最新版本匹配
迁移文件之后,VSS 转换器还会验证是否正确迁移了文件的最新提示版本。对于每个迁移后的文件,VSS 转换器都会对 Visual SourceSafe 中的提示版本与 Team Foundation 中的提示版本进行比较。如果检测到错误,则有三种可能的更正方法可供采用,如下表所示:
Visual SourceSafe 中的文件 |
Team Foundation 中的文件 |
相应的操作 |
---|---|---|
存在 |
不存在 |
从 Visual SourceSafe 获取提示版本并将其添加到 Team Foundation。 |
不存在 |
存在 |
删除 Team Foundation 上的文件。 |
存在 |
存在但不同 |
从 Visual SourceSafe 获取提示版本。将其从 Team Foundation 中签出。最后用正确的版本替换它,然后再将其签回。所有使用这种方式进行修复的版本不匹配都会作为一个变更集进行签入,并带有注释“由转换器提交以修复最新提示版本”。 |
在提示版本比较的版本匹配阶段,您会看到显示到控制台窗口的输出,如下所示:
正在验证最新提示版本…
正在验证最新提示版本: $/VSSFolder/a.c
正在验证最新提示版本: $/VSSFolder/b.c
版本不匹配错误
VSS 转换器可能无法更正某些版本不匹配错误。出现这种情况时,会将错误信息记录到迁移报告中。错误将被标识为固定版本或提示版本错误,并列出无法修复的文件。您应在迁移之后手动修复这些错误。