明星团队到 TFS 2010 迁移与历史



我想从明星团队 2005 迁移到 TFS 2010 与历史。是否有任何工具或任何方法可以让我经济高效地做到这一点。我知道及时迁移工具,但它太贵了。

没有工具可以做到这一点。 您只能为及时迁移付费或自己编写。 从星际团队中捕捉历史是非常复杂的。 这样做的原因是因为历史视图的样子。 您可以将视图回滚到某个时间点,仅此一项就非常有效,但是使用 API 几乎不可能回滚到视图发生更改的每个时间点。 这是因为 1) 并非所有内容都有审核记录,因此您不能使用审核,2) 审核记录被清除,3) 有一个特殊功能可以"播放"视图的历史记录以生成侦听器事件(需要 MPX),但这会错过许多事件, 4) 当项目被共享、配置时, 分支等,这些不会在项目中生成任何审计,5)即使他们这样做了,获得每个更改也需要遍历视图历史记录到秒,以通过分析差异来获取所有更改。 因此,这意味着如果您的项目已经活跃了一个月,并且每次分析两个视图配置以比较它们时,都需要 5 秒,那么实际迁移您的项目将需要 5 个月,同时它将被锁定。

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

但是,请记住,即使这样做也不会维护跨不同分支/视图的分支/合并点之间的链接。 唯一的方法是直接进入StarTeam数据库以获取此信息。

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

这不可避免地会给您带来最重要的问题:维护完整历史记录的商业价值是什么? 在作为StarTeam管理员与项目团队一起经历了很多次之后,超过90%的时间很明显,更好的方法是转换。 留出时间,您可以在新系统中开始处理新工作,并在旧系统中冻结工作。 它通常可以在项目团队很少的停机时间内完成。 您甚至可以从引入生产版本的历史记录开始,以便在新系统中创建一个粗略的时间线。 使用 TFS 或 BeyondCompare 或其他位置中的现有比较工具重现项目源代码、文档等的每个状态,并通过根据需要签入或删除文件,并为引入的每个生成标记 TFS 项目,将其与 TFS 项目进行协调。 排列所有 TFS 生成、工作项、用户、角色等,并确保一切准备就绪。 然后在转换时,从 StarTeam 获取最新的开发快照,并对 TFS 项目再进行一次更新。 将星际团队用户锁定在项目之外(无论如何用于签入),然后开始在 TFS 中工作。 您的 TFS 项目将具有最重要基线的粗略历史记录,并且您将能够保持 StarTeam 存储库对用户开放,以防需要更多历史记录。

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

我已经超过3年没有使用StarTeam了,但那是一次有趣的时光。 希望你觉得它有用。

最新更新