16

我们正在考虑从 ClearCase 迁移到 Subversion。该项目已经存在了一段时间(7 年),我们积极支持三个“主要”版本(分支),以及旧版本中的一些偶尔修复。这个项目相当大——大约 200 万行 java 代码。

我很好奇是否有人做过类似的迁移。

  • SVN能处理这么大的项目吗?
  • 迁移所有历史版本/分支是否有意义?可以有选择地执行此操作的工具吗?
  • 这样一个项目的迁移过程需要多长时间,迁移过程中的有效工作方式是什么?
4

5 回答 5

9

由于进行了几次此类迁移,我认为:

  • 您不需要将 ClearCase 版本的所有历史记录导入 SVN。大多数时候(根据我的经验),除非您真正需要细粒度的历史修订检查,否则只需要标记版本(一致应用于给定集合的所有文件的版本)。

  • 您需要考虑迁移期间的重组:导入什么?留下什么?您是否希望 SVN 内容准确反映存储在 ClearCase VOB 中的文件结构?有时,此类迁移是重新考虑其中一些文件组织的机会(通常通过对某些目录进行简单的重命名规则)。

  • ClearCase 2 SVN 方式的迁移更快,因为 SVN 以存储库为中心并提交一组文件,而 ClearCase 以文件为中心并逐个文件提交(慢得多)

  • 如果明确标识了要导入的文件集,则可以多次重复迁移过程,这意味着您可以在第一次(大)导入发生时继续在 ClearCase 中工作,然后将基线(UCM 标签)放在您的代码,并仅重新导入增量,从而有效地结束迁移过程。

于 2009-02-12T20:56:33.640 回答
5

首先是一些资源:

  1. Clearvision CC2SVN 工具
  2. Polarion 的 SVN 进口商
  3. CollabNet 上的文章和资源

实际存储库的大小、文件数量或其大小不是 SVN 的限制因素。开发人员的数量、更改的并发性、集成和发布过程的复杂性、合并和目录版本控制(重构)的需要可能会给大型项目带来问题。如果您的项目很大,但它相当稳定,开发人员数量少,分支数量少,并且不需要将大量修复程序向后移植到几个先前的版本,那么 SVN 应该可以满足您的需求。

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

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

时间框架很大程度上取决于所使用的工具。对于像您这样的大型项目,它甚至可能需要数周时间。由于某些奇怪的原因,ClearCase 数据库即使在读取操作时也有很多锁定,并且所有内容都有一个中央表,这会在大规模访问中产生很多问题,例如迁移会导致。我第一次在比你的大一点的产品上运行我的工具时,我们估计它会运行 3 年,经过大量优化、并行化和增量迁移后,它减少到大约一周。但预计根据工具的完成情况,它所花费的时间可能会有很大差异。尽管由于您迁移到 SVN 并且您将忽略来自 ClearCase 的许多历史记录和元数据,但您的迁移应该会快得多。

ClearVision 在其页面上提到其 CC2SVN 工具可以在这两种产品之间架起一座桥梁。虽然我没有使用这个工具,但如果它像我假设的那样工作,它会让你在一些处理后同步 2 个存储库,这将允许你在周末切换,而开发停机时间为零。如果这不可能,请尝试要求一些替代方案,例如增量迁移,您首先迁移到某个日期,然后迁移自该日期以来更改的较小数据块。

Very important part of the process is the post migration phase. Please do not discount the headaches the switch will bring to your developers. You must not underestimate the need for training and clear documentation. You will also need a trained support team in your software engineering department capable to operate both SCM systems and to explain to developers how to do things they were used to in the new system. This is actually a point that could break your neck in the migration. Developers resist any change and whatever advantages SVN brings to the project, it is in essence much inferior system. ClearCase gives your developers so much flexibility they will never have with SVN and unless you bring them on board early on in the process, you can lose them or worse, get the whole migration reversed, declared a disaster and lose your own job.

于 2009-03-03T08:01:38.480 回答
3

如果您决定搬家,可以查看这个 stackoverflow 问题。
推荐工具从clearcase到svn迁移

于 2009-02-12T17:59:14.593 回答
1
  1. 是的,Subversion 可以处理非常大的项目。例如,所有Apache 项目都在一个单一的 Subversion 存储库中,子项目是简单的子文件夹
  2. 如果转换所有历史记录有意义,那么您必须自己决定。但是有很多可用的工具。可以在这里找到一篇好的博客文章。
  3. 我不知道这样的转换需要多长时间。但是您可以先尝试一小部分并测量时间。
于 2009-02-12T17:52:13.143 回答
1

Another option is Migrate2SVN. The developer (Clearvision) has just released v2.0 and it appears to include many, MANY improvements over the Polarion software and other methods mention above.

于 2011-06-27T07:57:20.367 回答