ClearCase到SVN的迁移

4
我有一个关于 SVN 导入工具的问题,需要迁移一个具有大量历史记录的 ClearCase VOB。我们考虑选择 10-15 个代码基线版本并将其导入到 SVN 中。为此,我认为用户必须逐个指定特定版本。现在他问我如何在 ClearCase 中指定特定版本并导出它?我的想法是将代码作为 tar 包发送给我,然后我可以在我的桌面上解压缩并将其导入到 SVN 中。但是我不知道如何在 SVN 中导入或叠加所有这些基线版本......这与 SVN 类似吗?你能帮我吗?
4个回答

2

1

我没有使用过它,但我听说SVNImporter可以导入您的ClearCase VOBS,包括历史记录。

听起来你的用户真正想要的是从CC中一次性导出几个版本,以基本上“折叠”现有的历史记录。例如,假设您有一个具有数千个修订和数百个标签的大型VOB,并且您希望在新的Subversion存储库中仅有最后5个主要版本作为您的历史记录。您可以从CC中导出最早的所需版本,导入到SVN并创建工作副本。然后,您将从CC中导出一些稍后的版本,并将其复制到您的工作副本中并进行更新。重复此操作,直到您获得CC的最新版本。

您从CC获取的版本由视图配置规范控制。要仅获取与特定标签相关联的文件(希望他们有标签...),请更改配置规范为:

element /vob/MyPath/… DESIRED_LABEL

要获取与标签相关联的版本以及未与该标签关联的任何内容的当前版本,您可以使用以下方法:

element /vob/MyPath/… DESIRED_LABEL
element /vobs/MyPath/… /main/LATEST

更多信息请参见IBM/Rational config_spec文档


1

我自己进行了一些 clearcase 迁移,以下是我的想法:

  1. 不要使用 Gary Ray 建议的导入工具,因为它还不够成熟。它缺少很多你想要的功能,例如目录版本控制、旧文件名的正确标签、已删除文件的历史记录等等。这个导入工具仅适用于小规模迁移,其中你确实需要你的文件内容并且可以忽略总体架构更改。

  2. 创建一个您想要导出的标签列表

  3. 编写一个脚本来为您的标签列表中的每个标签生成 clearcase 配置规范

  4. 备选方案:如果您在步骤 3 中无法成功,则创建每个标签的配置规范列表

  5. 将您的 clearcase 视图打包成 tar 和 zip 文件,并在 SVN 机器上收集它

  6. 将每个 zip 文件提取到一个文件夹中

  7. 使用 svn_load_dirs.pl 导入到 SVN 中,您可能还想在 SVN 中创建一个标签

  8. 进入下一个标签执行第 6 步
请注意,这也适用于多个项目。但是,如果您有共享模块(SVN中的弱点之一),则需要特定的仓库结构,并且导入到SVN可能更加复杂(可以使用svn:externals)。 您真的应该自动化这个过程,因为大多数情况下您会导入多次,因为您的配置规范缺少文件,您的SVN结构将发生变化等等。因此,请编写脚本并自动运行所有内容,这将更加灵活,直到完成所有迁移为止。您还可能需要审核迁移结果。

0
注意:如果您所指的“基线”是指“UCM基线”,那么对于给定的组件(Vob中的文件树),这将变得更加简单。
创建一个带有单个集成流和其上的动态视图的UCM项目,然后:
ct lsbl -s component:myComponentToExport@\myPVob

将会给你导出基线列表。

ct rebase -bas myIntStream@\myPVob aBaseline

在动态视图中将该视图设置为您的导出源。
(对于每个基线,重复此操作,从要导入的最旧版本到最新版本)


但是,如果您使用带有基本ClearCase标签(而不是UCM)的数据,请注意以下问题:

可以在任何文件上放置基本ClearCase标签。像Gary建议的那样的规则。

element /vob/MyPath/... DESIRED_LABEL

可能会选择0个文件,仅仅因为根目录 'MyPath' 没有标记为 'DESIRED_LABEL'!


此外,没有“时间线”修订的概念(如Subversion中的修订)。

如果标签证明不太可靠(因为未放置在所有文件上),解决方案可以是将标签日期与基于时间的规则相结合。

element /vob/MyPath/... DESIRED_LABEL
element /vob/MyPath/... .../myBranch/LATEST -time (date_Of_The_Label_Put)

'date_Of_The_Label_Put' 是至少一个元素上标签应用的日期。
如果某些元素没有被标记,它们仍将选择正确的版本,即在一组文件上部分应用标签的时间点。

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