2009-02-12 158 views
16

我们正在考虑从ClearCase转移到Subversion。该项目已有一段时间(7年),我们积极支持三个“主要”版本(分支机构),以及一些旧版本的偶尔修复。该项目相当大 - 大约2百万行java代码。从ClearCase迁移到SVN的最佳策略是什么?

我很好奇,如果有人做过类似的迁移。

  • SVN能够处理这么大的项目吗?
  • 迁移所有历史版本/分支是否有意义?这些工具可以选择性地做到吗?
  • 迁移过程需要多长时间才能完成这样的项目?迁移过程中有效的工作方式是什么?
+0

我第二个问题。 ;-) – 2009-02-12 17:39:52

+0

简短的问题。视窗? – Avram 2009-02-12 17:53:49

回答

9

,做出了这样的几个迁移,我认为:

  • 你不需要导入所有 ClearCase的版本到SVN的历史。大多数情况下(根据我的经验),除非您真的需要精细的历史修订版本,否则只需要标记版本(在给定集合的所有文件中一致地应用的版本)。

  • 你需要考虑重组在迁移过程中:??是否进口什么,什么你离开,你要SVN内容反映正好文件的结构存储在ClearCase VOB?有时候,这种迁移是重新考虑某些文件组织的机会(通常通过对某些目录进行简单的重命名规则)。

  • 迁移是在ClearCase 2 SVN方式更快,因为SVN是仓库为中心,提交一组文件,而ClearCase是文件为中心,提交文件的文件(多sloooower)

  • 如果要导入的文件集清楚地标识出来,迁移过程可以重复多次,这意味着您可以在第一次(大)导入时在ClearCase中继续工作,然后将基线(UCM标签)在您的代码上,并只重新导入增量,有效地结束迁移过程。

1
  1. 是的,Subversion可以处理非常大的项目。例如,所有Apache projects都位于一个Subversion存储库中,子项目是简单的子文件夹。
  2. 如果转换所有历史记录是有意义的,那么您必须自行决定。但有很多工具可用。一篇好博客文章可以在here找到。
  3. 我不知道这种转换需要多长时间。但是,您可以先尝试一个小子集并测量时间。
5

首先是一些资源:

  1. Clearvision CC2SVN Tool
  2. SVN Importer by Polarion
  3. Article and resources on CollabNet

实际存储库的大小,文件或它们的尺寸的数量不是限制因素SVN。开发人员的数量,变化的并发性,集成和发布过程的复杂性,合并和目录版本控制(重构)的需要都可能对大型项目造成问题。如果你的项目很大,但它相当稳定,开发人员少,分支机构数量少,并且不需要为以前的几个版本支持大量的修复程序,SVN应该对你很好。

我写了一个自定义的迁移工具,将数据带出ClearCase,这不是一件容易的事。每两个系统对数据都有不同的数据模型和操作。我不会建议尝试编写任何自定义迁移工具,因为以任何有意义的方式实际从ClearCase中获取数据非常困难。有关商业解决方案局限性的详细信息,我建议联系资源链接的解决方案提供商。

我个人会尽量提供尽可能多的数据,但您必须了解SVN与ClearCase相比的局限性。在此迁移过程中,任何目录版本控制(重构)历史记录都可能会丢失。 SVN不支持像ClearCase这样的稀疏分支,如果你使用了任务分支,它可能会膨胀你的SVN仓库的大小。在这种情况下,你可能只想限制自己到系统分支。 ClearCase中的文件具有独立的分支结构,而SVN的每个产品都有分支排序,这将导致在该过程中进行大量的分支转换。通过将自己限制为系统分支,并且可能只在这些分支上标记版本以获得系列中完全集成的标签,可以为自己节省很多麻烦。如果你的团队使用UCM,你几乎可以忘记所有的UCM元数据。他们不会翻译成SVN。

时间框架很大程度上取决于所使用的工具。对于像你这样的重大项目,甚至可能要数周。 ClearCase数据库存在一些奇怪的原因,即使在读取操作时也会出现大量锁定,并且存在一个中心表,这些表会导致大量访问(如迁移会导致大量问题)。我第一次在产品上运行我的工具比你的产品大一些时,我们估计它会运行3年,经过很多优化,并行化和增量迁移后,它会减少到大约一周。但预计取决于该工具的完成程度,可能需要很多时间差异。虽然自从你迁移到SVN并且你会忽略ClearCase的许多历史和元数据,你的迁移应该更快。

ClearVision在其网页上提到其CC2SVN工具可以在两种产品之间创建一个桥梁。虽然我没有使用这个工具,但是如果它按我的设想工作,它可以让你在处理一些内容后同步这两个版本库,这将允许你进行一些周末切换,并且零开发停机时间。如果这是不可能的,请尝试寻求一些替代方法,如增量迁移,您首先迁移到某个日期,然后迁移自该日期以来更改的一小块数据。

该过程的非常重要的部分是后期移植阶段。请不要打扰交换机给您的开发人员带来的麻烦。你不能低估培训和明确文件的需要。您还需要在软件工程部门接受培训的支持团队来操作SCM系统,并向开发人员解释如何在新系统中完成他们习惯的操作。这实际上是一个可能会在移民中打破脖子的点。开发人员抵制任何变化,以及SVN给这个项目带来的优势,它本质上就是更差的系统。 ClearCase为开发人员提供了极大的灵活性,他们将永远不会与SVN一起工作,除非您在开发过程中尽早使用它们,否则您可能会失去它们甚至更糟糕,导致整个迁移过程逆转,宣布灾难并失去自己的工作。

1

另一种选择是Migrate2SVN。开发人员(Clearvision)刚刚发布了v2.0,它似乎包含许多对Polarion软件和上述其他方法的许多改进。

相关问题