5

我有一位非常坚持使用 Clearcase 的客户。是否有任何工具/脚本可以让我的团队针对 SVN 存储库(或除 Clearcase 之外的任何东西)工作,但会定期自动将变更集同步回 Clearcase VOB?

我的想法是,如果存在这样的工具,并且它是自动的、可靠的和透明的,那么可能会说服客户端允许我们对抗 SVN。

谢谢,肯特

4

7 回答 7

3

我直接在 ClearCase 视图中使用Git 。
然后git2svn,如果我有一个 SVN 存储库要与之同步,我可以将内容备份到 SVN。

注意:对于直接在 ClearCase 视图中工作的工具,我必须使用快照视图,以便写入文件,即使它们尚未签出。然后,对于我认为已完成的任何活动,我都会更新快照视图,它允许我列出所有“被劫持”的文件。我检查它们,然后检查它们。


在这种情况下(客户端的 ClearCase 存储库)使用 SVN 时我会看到的问题是:

  • 引入了另一个中央存储库(意思是提交,您必须有权访问您的私有中央 SVN 存储库,并且对于“到客户端提交”,才能访问中央 ClearCase VOB - 版本对象库,即“存储库”在 ClearCase 术语中)。
  • 引入了另一个分支建模,在 SVN 中,它是目录中的廉价副本,而在 ClearCase 中,它是不表示为目录的元数据(分支)。这意味着 SVN 签出的物理树可能与 ClearCase 中的快照视图更新不匹配,因为 SVN 签出的某些目录在 ClearCase 中根本不存在。

至少,使用 Git,你有:

  • 私有存储库(您没有添加另一个每个人都应该有权访问的中央存储库)
  • 相同的分支模型(至少在“不通过目录表示分支”时)
于 2009-08-06T16:29:44.630 回答
2

对于我正在进行的一个项目,我们正是需要这个。团队更喜欢 svn,而公司标准是 ClearCase。所以我写了一个脚本来不断地将trunk迁移到clearcase,并在我们的构建服务器上运行它。

我把脚本放在这里:http ://dvae.net/blog/2009/09/clearcase-to-svn/

我们所做的是在我们的构建服务器上设置一个定期运行的作业,并使用 clearfsimport 进行迁移。我们使用 Luntbuild 作为构建服务器,但巡航控制也可以正常工作。像正常构建一样,我们将脚本设置为仅在检测到 svn 修改时运行。我们每 20 分钟运行一次作业,因为 ClearCase 服务器位于不同的国家,所有操作都很慢,同步运行需要 40 分钟。我建议尽可能多地跑步。

该脚本基于 ClearCase UCM,如果不是,则必须删除“cleartool mkact”并在最后创建一个标签而不是基线。

我将 clearcase 注释设置为自上次同步以来所有 SVN 提交的串联。

我发现它可靠,它失败的唯一原因是 Clearcase 触发器(如“邪恶双胞胎”触发器)停止了签入。发生这种情况时,构建失败,Lunbuild 会发送一封电子邮件,然后我必须手动执行反向历史合并以摆脱邪恶孪生问题,提交并重新运行。

于 2009-10-24T19:56:37.097 回答
1

仅供参考:它可能以某种方式对您有用:从 SVN 迁移到 ClearCase

这不会同步数据,但如果您需要迁移,它可能会有所帮助。

于 2009-08-12T12:39:58.910 回答
1

如果 clearcase 有命令行支持,您将能够编写一个脚本来检查 clearcase,并配置 svn 以在提交代码时自动执行它(提交后挂钩

于 2009-08-26T11:18:39.613 回答
1

是的,CollabNet 专门为此目的提供了一种商业产品,称为CollabNet Subversion 连接器。

于 2009-09-07T04:49:47.643 回答
1

Clearvision 还为此目的提供了一个商业工具,可在此处获得:

http://www.clearvision-cm.com/clearcase-subversion-git-mercurial-integration.html

它可以与 subversion、git 或 Mercurial 同步 clearcase。

于 2012-04-13T10:50:16.617 回答
0

那篇文章描述了几种方法:

http://www-01.ibm.com/support/docview.wss?ratlid=cctocbody&rs=984&uid=swg21258843

基本上变种:

1) 如果您对维护版本历史不感兴趣,只想从最新版本或预选配置开始,您可以使用clearfsimport命令。查看有关 clearfsimport (cleartool man clearfsimport) 主题的 ClearCase 命令参考指南以获取更多信息。

2)如果您需要版本历史,您可能需要评估开源工具svn2cc

解决方法:

  1. 可以在 Subversion 中创建表示开发流中某些里程碑的视图。从那里,您可以使用上述命令 clearfsimport 依次从每个视图导入版本。此方案中的 clearfsimport 命令将在每次运行时创建元素的新版本,并自动将标签应用于导入的版本。

  2. 您可以尝试使用 clearexport_cvs,因为 Subversion 存储库与 CVS(并发版本系统)的存储库非常相似,有关此导出实用程序的更多详细信息,请参阅 IBM Rational ClearCase 命令参考。

于 2009-08-29T07:19:57.043 回答