2012-01-05 159 views
2

我想一个小项目,从2005年VSS转换为2010 TFS和一切运作良好,除了所有的历史都是不能转换。我正在密切关注从http://msdn.microsoft.com/en-us/library/ms253060.aspx(从Visual SourceSafe迁移到Visual Studio 2010)的演练。VSS 2005迁移到TFS 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 

我试图寻找对这些错误的详细信息,但没有太多的信息。有没有人看到这些错误?

谢谢。

+0

只是为了澄清,我认为你:1)选择“归档所有数据”中的VSS存档工具的版本范围选项,和b)没有按照迁移指南中的可选截断一步,它是否正确? – 2012-01-05 22:05:25

回答

2

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

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

等。如果我备份和恢复Project11到一个空VSS DB我哈德以下几点:

$/ 
___+Folder1 
______+Project11 

现在,当我把

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

到我的settings.xml,我失去的历史,即使所有代码已正确转换。 当我改变了对

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

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

1

我的经验:我们从迁移到TFS2005 TFS2008然后TFS2010。至于我记得,有迁移到TFS 2008年我们用迁移工具,从TFS2005所有变更迁移到(每变更)TFS2008数据库(保存历史的变化)过程中的问题。这是一个非常缓慢的过程。无法在一天之内完成,因此我们决定将整个存储库移至新的TFS数据库(不要阻止开发人员对其代码更改进行签入)。我们失去了所有的历史变化,但是我们被迁移了:)并且开发者没有被封锁。这不是我的责任。我没有做出这个决定。我们使用了codeplex的一些工具。也许this one(我不记得现在很抱歉)。从TFS2008迁移到FTS2010完全没有问题,因为您可以使用sam DB作为TFS2010,并且您的历史更改应该保持不变。

我知道这是不是你的问题的答案,但它可能会有所帮助的人不要做这种方式:)

+0

您不应该需要执行迁移。 TFS 2008将升级TFS 2005数据库并保留历史记录。 – 2012-01-05 22:00:19

+0

嗯。我不知道为什么使用迁移工具迁移我们的来源而不是简单的数据库迁移的原因:( – Ludwo 2012-01-05 22:11:17