3

我有大量需要迁移到 perforce 的 clearcase 数据。修订跨越了十年的大部分时间,我需要尽可能多地保留分支和标签信息。此外,我们广泛使用符号链接,在 clearcase 中支持但在 perforce 中不支持。你有什么建议或工具可以使这更容易?

4

5 回答 5

3

第一步是决定您是需要迁移所有内容,还是只迁移某些关键版本。如果您只迁移重要版本(版本和主要里程碑),您将在 Perforce 中获得更简单的历史,而不会丢失任何重要的东西。然后 ClearCase 可以作为历史档案保存以备不时之需。(除非 IBM 进行了更改,否则 ClearCase 许可证在维护结束时不会过期,您只会失去获得新升级和补丁的权利以及获得支持的权利)

请记住,Perforce 不会对目录进行版本控制,也不会保留完整的每个元素的版本树——这意味着不可能实现 1:1 的精确结果。重新创建重要的快照是一个更容易实现的目标。保留一切可能是不可能的,因为 Perforce 缺少 ClearCase 所依赖的功能。

要查看 Perforce 对 miration 的看法,请查看 http://perforce.com/perforce/ccaseconv.html 这解释了关键差异并涵盖了您可以采取的一些方法。

于 2008-09-23T05:25:00.017 回答
2

首先在 Google 上搜索“clearcase to perforce conversion”。然后阅读ClearCase 到 Perforce 的转换指南。一旦你哭完,你将不得不决定 (1) 你能承受多少努力,以及 (2) 作为转换的一部分,你真正需要捕捉什么。你不会得到这一切,所以你不妨只专注于获得重要的分支。

另一个考虑是将每个受支持分支的当前状态捕获为快照,将其导入 Perforce,然后关闭旧的 ClearCase 服务器,将其保存为当天需要从深沉、黑暗、Perforce 之前的日子……

于 2008-09-23T05:27:58.183 回答
1

其他答案已过时。现在您可以使用许多选项导入 CC->Perforce,同时保留历史记录。 http://www.perforce.com/sites/default/files/pdf/migration-planning-guide-clearcase-to-perforce.pdf

于 2013-05-07T07:14:58.287 回答
0

您还必须记住一个事实,即您的 importerscript 可能会以不同于 clearcase 提交的顺序稍微提交(也许您正在遍历 dir,可能是文件的历史记录等)

因此,除非您将所有版本信息收集到(大型)数据库中并在之后对它们进行排序,否则您最终会得到不太有用的提交(当然,单个文件的历史记录除外)。当您(希望)更改您的提交策略以将原子更改提交到 perforce 时,它​​将在开发开始时可见:之前的提交对项目范围没有任何意义。

所以你真的应该考虑把 clearcase 历史抛在脑后。标签/分支创建也是一个不同的问题,因为您需要旧分支的旧配置规范。最后,您将在旧标签中得到错误的文件名(因为 perforce 不支持 dir-vers。)因此您将为此使用 clearcase(并且为文件的每个版本获取正确的文件名非常棘手!)。

您将遇到的最后一个问题:导入程序运行时间:如果您有大型 VOB(例如 10 年,50 GB 大小),您将等待导入程序收集所有信息并将其转换为漂亮的闪亮 perforce 存储库。这一天,您的开发团队将停止工作。

于 2008-10-02T07:38:55.210 回答
0

简要说明一下我从 ClearCase 到 Perforce 的一次导入。
ClearCase 到 Perforce 转换指南中所述:

Perforce 支持原子变更事务;ClearCase 没有。

请注意,标签通常用于简单地表示特定易于指定的文件集的快照;由于 Perforce 使用原子更改事务和文件命名语法,这在 Perforce 中本质上很容易在不使用标签的情况下完成。
例如,//depot/projecta可以通过以下方式获得截至变更 42中所有文件的状态

p4 sync //depot/projecta/...@42

这意味着导入的 ClearCase 项目是一个UCM项目,因为基线的概念紧跟全局修订的概念。
只有带有基线的文件被导入,其他版本被丢弃。

于 2010-05-31T18:07:06.327 回答