我想通过历史从星际团队2005迁移到TFS 2010。有没有什么工具或任何方式可以有效地做到这一点。我知道及时迁移工具,但是它太昂贵了。

最佳答案

没有工具可以执行此操作。您需要为“及时迁移”或自己编写支付。从StarTeam捕获历史非常复杂。这样做的原因是因为 View 在历史上看起来是什么样的。您可以将 View 回滚到某个时间点,并且仅此一项效果很好,但是使用API​​几乎不可能回滚到 View 发生更改的每个时间点。这是因为1)并非所有内容都有审核记录,因此您不能使用审核,并且2)清除了审核记录,3)有一个特殊功能可以“回放” View 的历史记录以生成 View 侦听器事件(需要MPX),但这会错过许多事件,4)共享,配置,分支等项目时,这些事件不会在项目中生成任何审核,5)即使它们发生了,获取每个更改都需要反复浏览 View 历史记录到第二秒,以通过分析差异来获得所有更改。因此,这意味着如果您的项目已经 Activity 了一个月,并且每次您分析两个 View 配置以进行比较需要5秒钟,那么实际迁移项目将需要5个月,与此同时,它也会被锁定。

因此,执行此操作的下一种方法是建立“基线”进行比较。如果您的项目中有每晚或连续的构建,甚至只是某些经过QA认证的构建,则使用构建标签是一个不错的起点。这样,您可以将这些基线用作差异/比较的点,然后以这种方式引入历史。尽管这不像完整的历史记录那么细致,但根据定义,这是要迁移的最重要差异。

但是,请记住,即使以此方式执行操作,也不会维护不同分支/ View 之间分支/合并点之间的链接。唯一的方法是直接进入StarTeam数据库以获取此信息。

我经历了所有这些步骤,尝试编写自己的工具套件,以从StarTeam迁移到Subversion。它虽然有趣,有趣,不完美,但有一些希望,但最终没有完成。部分原因是因为所花费的时间远远超过了我从中获得的价值。

这不可避免地带给您最重要的问题:保持完整历史记录的业务价值是什么?在作为StarTeam管理员与项目团队一起经历了如此多次之后,超过90%的时间显而易见,更好的方法是过渡。花些时间可以开始在新系统中进行新工作,并冻结旧系统中的工作。对于项目团队来说,通常只需很少的停机时间即可完成。您甚至可以先回顾生产版本的历史,以在新系统中创建一个大致的时间表。使用您现有的比较工具(在TFS或BeyondCompare或其他地方)来重现项目源代码,文档等的每种状态,并通过检入或删除文件(根据需要)并将其标记为TFS项目,将其与TFS项目进行协调。您带来的每个版本。排列所有TFS构建,工作项,用户,角色等,并确保一切准备就绪。然后在转换时,从StarTeam获取最新的开发快照,并对您的TFS项目再进行一次更新。将您的Starteam用户锁定在项目之外(无论如何都需要 checkin ),然后开始在TFS中工作。您的TFS项目将具有最重要基准的粗略历史记录,并且在需要更多历史记录的情况下,您可以保持StarTeam存储库对用户开放。

要考虑的另一件事是如何创建项目的永久存档。如果您的存储库足够小,那么它是可行的,但是随着项目的增加,将花费更多的时间。首先,将整个数据库和保管库复制到一个单独的实例,然后启动并运行该副本。然后删除所有其他项目,但要存档的项目除外。运行联机清除,并确保运行完成。您可能需要重新启动服务器并清除几次。完成后,整个存储库应仅包含项目所需的文件和数据库记录。此时,您可以备份数据库和保管库,并无限期地保留它们。这样可以减小现有StarTeam存储库的大小。

过去3年没有使用StarTeam了,但那是一次很有趣的旅程。希望您发现它有用。

关于starteam - 明星团队向TFS 2010迁移的历史,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27867669/

10-13 08:07