VSS 2005迁移到TFS 2010 - 历史未迁移

时间:2012-01-05 00:26:45

标签: tfs2010 visual-sourcesafe tfs-migration vssconverter

我正在尝试将一个小项目从VSS 2005转换为TFS 2010,并且一切正常,但所有历史记录都未转换。我正在密切关注来自http://msdn.microsoft.com/en-us/library/ms253060.aspx(从Visual SourceSafe迁移 - Visual Studio 2010)的演练。

我将一个小项目从一个巨大的VSS数据库备份到我的本地机器,准备settings.xml文件,在分析中运行VSSConverter然后在迁移模式下,代码最终在TFS中,项目结构正确,只是历史不存在。

转换后,我在VSSConverter.log文件中有很多错误,如下所示:

[VSS,             Error,     3, 2012/01/04 14:48:02.159] Exception: System.Runtime.InteropServices.COMException
    Message: File or project not found
    Stack Trace:    at Microsoft.VisualStudio.SourceSafe.Interop.IVSSItem.get_Versions(Int32 iFlags)
   at Microsoft.TeamFoundation.Converters.VersionControl.Vss.VssWrapper.ReadHistoryItemNoRecursive(ItemInfo itemInfo, Int32 flags, String spec, String name, Boolean type, Boolean deleted, Boolean isPinned, Int32 pinnedVersion, Boolean writeToDB)
   at Microsoft.TeamFoundation.Converters.VersionControl.Vss.VssWrapper.PutInfoInDB(ItemInfo itemInfo, Boolean isMigrate)
    Help Link: ssusexp.hlp#10609
    BaseExceptionMessage: File or project not found

我试图搜索有关这些错误的更多信息,但没有太多信息。有没有人看到这些错误?

感谢。

2 个答案:

答案 0 :(得分:2)

我想我发现我做错了什么,现在可以重现这种行为。 我原来的VSS数据库具有以下结构

$/
___+Folder1
_______+Project11
_______+Project11
...........
_______+Project1n
___+Folder2
_______+Project21
...........
_______+Project2n

等等。如果我备份并将Project11恢复为空的VSS数据库,我可以进行以下操作:

$/
___+Folder1
______+Project11

现在,当我放置

<Project Source="$/Folder1" Destination="$/Project11"></Project>

进入我的settings.xml,即使所有代码都已正确转换,我也失去了历史记录。 当我把它改为

<Project Source="$/Folder1/Project11" Destination="$/Project11"></Project>

所有历史都被转换。 也许这有助于某人。 :)

答案 1 :(得分:1)

我的经历:我们从TFS2005迁移到TFS2008再到TFS2010。据我记忆,在迁移到TFS 2008期间存在问题。我们使用迁移工具将所有变更集从TFS2005迁移到TFS2008数据库(每个变更集)(以保存历史记录更改)。这真是一个缓慢的过程。在一天的窗口中无法完成,所以我们决定将整个存储库移动到新的TFS数据库(不阻止开发人员签入他们的代码更改)。我们丢失了所有历史记录更改,但我们已迁移:)并且开发人员未被阻止。这不是我的责任。我没有做出这个决定。我们使用了codeplex中的一些工具。也许this one(我现在不记得对不起)。从TFS2008迁移到FTS2010完全没问题,因为您可以将sam DB用于TFS2010,并且您的历史记录更改应该不受影响。

我知道这不是你问题的答案,但对某人不这样做可能会有所帮助:)