2

我正在尝试将一个小项目从 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

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

谢谢。

4

2 回答 2

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>

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

于 2012-01-10T04:18:59.883 回答
1

我的经验:我们从 TFS2005 迁移到 TFS2008,然后再迁移到 TFS2010。据我记得,在迁移到 TFS 2008 期间出现了问题。我们使用迁移工具将所有变更集从 TFS2005 迁移到 TFS2008 数据库(每个变更集)(以保存历史更改)。这真的是一个缓慢的过程。不可能在一天之内完成,因此我们决定将整个存储库移至新的 TFS 数据库(以免阻止开发人员签入他们的代码更改)。我们丢失了所有历史更改,但我们被迁移了 :) 并且开发人员没有被阻止。这不是我的责任。我没有做出这个决定。我们使用了一些来自 codeplex 的工具。也许这个(我现在不记得对不起)。从 TFS2008 迁移到 FTS2010 完全没有问题,因为您可以将 sam DB 用于 TFS2010,并且您的历史更改应该保持不变。

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

于 2012-01-05T21:52:37.033 回答