迁移ClearCase到Perforce

3

我有大量的ClearCase数据需要迁移到Perforce。这些修订版本跨越了十年的时间,我需要尽可能保留更多的分支和标签信息。此外,我们广泛使用符号链接,在ClearCase中得到支持,但在Perforce中不支持。你能提供哪些建议或工具,可以使这个过程更容易吗?

5个回答

3
第一步是决定是否需要迁移所有内容,还是只迁移某些关键版本。如果只迁移重要版本(发布和主要里程碑),则在Perforce中会得到一个更简单的历史记录,而不会丢失任何重要内容。然后,可以将ClearCase保留为历史存档,以防有需要时使用。(除非IBM改变了事情,否则ClearCase许可证在维护到期时不会过期,您只会失去新升级和补丁以及访问支持的权利)
请记住,Perforce不会对目录进行版本控制,并且不会保留完整的每个元素版本树-这意味着1:1具有精确结果将是不可能的。重新创建重要的快照是一个更可行的目标;保留所有内容可能是不可能的,因为Perforce缺少ClearCase依赖的功能。
要了解Perforce对迁移的看法,请查看http://perforce.com/perforce/ccaseconv.html。这解释了关键差异并涵盖了您可以采取的一些方法。

2
首先,通过谷歌搜索"clearcase to perforce conversion"。 然后阅读ClearCase to Perforce Conversion Guide。 一旦完成,你需要决定:(1) 你能够承担多少努力,(2) 你真正需要在转换中捕获什么内容。你不可能得到所有的东西,所以最好专注于获取重要的分支。
另一个考虑因素是仅将每个支持的分支的当前状态作为快照捕获,导入到Perforce中,然后关闭旧的ClearCase服务器,将其保留在已知的良好状态中,以备在需要访问来自前Perforce时代的内容时使用...

1

0

你还需要记住的是,你的导入脚本可能会比ClearCase提交稍微有些不同(也许你正在遍历目录,也许是文件的历史记录等等)。

因此,除非你将所有版本信息收集到一个(大型)数据库中并在之后进行排序,否则你最终会得到一些不太有用的提交(当然除了单个文件的历史记录)。如果你(希望)将你的提交策略更改为将原子更改提交到Perforce中,那么开发开始时就会变得可见:之前的提交在项目范围内根本没有任何意义。

所以你真的应该考虑放弃ClearCase的历史记录。标签/分支的创建也是一个不同的问题,因为你需要旧的configspecs来处理旧的分支。 最后你会遇到的问题是导入器运行时间: 如果你有大型的VOBs(例如10年,50 GB大小),你将等待几天才能收集所有信息并将其转换为漂亮的Perforce仓库。在这些日子里,你的开发团队将停止工作。


从Clearcase中提取的许多数据可以被缓存,因此您可以提前完成许多准备工作。 - GS - Apologise to Monica

0

关于我从ClearCase迁移到Perforce时看到的一个导入提示,只是一个快速说明。
ClearCase to Perforce Conversion Guide中所述:

Perforce支持原子更改事务;ClearCase不支持。

请注意,标签通常用于简单地表示特定易于指定的文件集的某个时间点的快照;在Perforce中无需使用标签就可以轻松实现此操作,因为Perforce使用原子更改事务和文件命名语法。
例如,可以通过以下方式获得//depot/projecta中所有文件在更改42之前的状态:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接