我们正在考虑从ClearCase转移到Subversion。该项目已有一段时间(7年),我们积极支持三个“主要”版本(分支机构),以及一些旧版本的偶尔修复。该项目相当大 - 大约2百万行java代码。从ClearCase迁移到SVN的最佳策略是什么?
我很好奇,如果有人做过类似的迁移。
- SVN能够处理这么大的项目吗?
- 迁移所有历史版本/分支是否有意义?这些工具可以选择性地做到吗?
- 迁移过程需要多长时间才能完成这样的项目?迁移过程中有效的工作方式是什么?
我们正在考虑从ClearCase转移到Subversion。该项目已有一段时间(7年),我们积极支持三个“主要”版本(分支机构),以及一些旧版本的偶尔修复。该项目相当大 - 大约2百万行java代码。从ClearCase迁移到SVN的最佳策略是什么?
我很好奇,如果有人做过类似的迁移。
,做出了这样的几个迁移,我认为:
你不需要导入所有 ClearCase的版本到SVN的历史。大多数情况下(根据我的经验),除非您真的需要精细的历史修订版本,否则只需要标记版本(在给定集合的所有文件中一致地应用的版本)。
你需要考虑重组在迁移过程中:??是否进口什么,什么你离开,你要SVN内容反映正好文件的结构存储在ClearCase VOB?有时候,这种迁移是重新考虑某些文件组织的机会(通常通过对某些目录进行简单的重命名规则)。
迁移是在ClearCase 2 SVN方式更快,因为SVN是仓库为中心,提交一组文件,而ClearCase是文件为中心,提交文件的文件(多sloooower)
如果要导入的文件集清楚地标识出来,迁移过程可以重复多次,这意味着您可以在第一次(大)导入时在ClearCase中继续工作,然后将基线(UCM标签)在您的代码上,并只重新导入增量,有效地结束迁移过程。
如果你决定移动,你可以看看这个计算器的问题。
recommendation-on-tools-to-migrate-from-clearcase-to-svn
首先是一些资源:
实际存储库的大小,文件或它们的尺寸的数量不是限制因素SVN。开发人员的数量,变化的并发性,集成和发布过程的复杂性,合并和目录版本控制(重构)的需要都可能对大型项目造成问题。如果你的项目很大,但它相当稳定,开发人员少,分支机构数量少,并且不需要为以前的几个版本支持大量的修复程序,SVN应该对你很好。
我写了一个自定义的迁移工具,将数据带出ClearCase,这不是一件容易的事。每两个系统对数据都有不同的数据模型和操作。我不会建议尝试编写任何自定义迁移工具,因为以任何有意义的方式实际从ClearCase中获取数据非常困难。有关商业解决方案局限性的详细信息,我建议联系资源链接的解决方案提供商。
我个人会尽量提供尽可能多的数据,但您必须了解SVN与ClearCase相比的局限性。在此迁移过程中,任何目录版本控制(重构)历史记录都可能会丢失。 SVN不支持像ClearCase这样的稀疏分支,如果你使用了任务分支,它可能会膨胀你的SVN仓库的大小。在这种情况下,你可能只想限制自己到系统分支。 ClearCase中的文件具有独立的分支结构,而SVN的每个产品都有分支排序,这将导致在该过程中进行大量的分支转换。通过将自己限制为系统分支,并且可能只在这些分支上标记版本以获得系列中完全集成的标签,可以为自己节省很多麻烦。如果你的团队使用UCM,你几乎可以忘记所有的UCM元数据。他们不会翻译成SVN。
时间框架很大程度上取决于所使用的工具。对于像你这样的重大项目,甚至可能要数周。 ClearCase数据库存在一些奇怪的原因,即使在读取操作时也会出现大量锁定,并且存在一个中心表,这些表会导致大量访问(如迁移会导致大量问题)。我第一次在产品上运行我的工具比你的产品大一些时,我们估计它会运行3年,经过很多优化,并行化和增量迁移后,它会减少到大约一周。但预计取决于该工具的完成程度,可能需要很多时间差异。虽然自从你迁移到SVN并且你会忽略ClearCase的许多历史和元数据,你的迁移应该更快。
ClearVision在其网页上提到其CC2SVN工具可以在两种产品之间创建一个桥梁。虽然我没有使用这个工具,但是如果它按我的设想工作,它可以让你在处理一些内容后同步这两个版本库,这将允许你进行一些周末切换,并且零开发停机时间。如果这是不可能的,请尝试寻求一些替代方法,如增量迁移,您首先迁移到某个日期,然后迁移自该日期以来更改的一小块数据。
该过程的非常重要的部分是后期移植阶段。请不要打扰交换机给您的开发人员带来的麻烦。你不能低估培训和明确文件的需要。您还需要在软件工程部门接受培训的支持团队来操作SCM系统,并向开发人员解释如何在新系统中完成他们习惯的操作。这实际上是一个可能会在移民中打破脖子的点。开发人员抵制任何变化,以及SVN给这个项目带来的优势,它本质上就是更差的系统。 ClearCase为开发人员提供了极大的灵活性,他们将永远不会与SVN一起工作,除非您在开发过程中尽早使用它们,否则您可能会失去它们甚至更糟糕,导致整个迁移过程逆转,宣布灾难并失去自己的工作。
另一种选择是Migrate2SVN。开发人员(Clearvision)刚刚发布了v2.0,它似乎包含许多对Polarion软件和上述其他方法的许多改进。
我第二个问题。 ;-) – 2009-02-12 17:39:52
简短的问题。视窗? – Avram 2009-02-12 17:53:49