SVN到Clearcase Export

时间:2009-08-06 16:24:42

标签: svn synchronization clearcase

我有一位客户坚持使用Clearcase。是否有任何工具/脚本允许我的团队针对SVN存储库(或者除了Clearcase之外的任何),但是会定期自动将更改集同步到Clearcase VOB?

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

谢谢, 肯特

7 个答案:

答案 0 :(得分:3)

我在ClearCase视图中直接使用 Git 然后我可以git2svn将内容提交给SVN,如果我有一个SVN仓库与之同步。

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


在这种情况下我会看到与SVN一起使用的问题(客户端的ClearCase repo)将是:

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

至少,对于Git,你有:

  • 私人存储库(您没有添加每个人都应该有权访问的其他中央存储库)
  • 相同的分支模型(至少在“不代表目录的分支”时)

答案 1 :(得分:2)

我正在为我正在进行的项目提供这个。团队在svn中更舒服,企业标准是ClearCase。所以我编写了一个脚本来不断地将trunk迁移到clearcase,并在我们的构建服务器上运行它。

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

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

该脚本基于ClearCase UCM,如果您不必删除'cleartool mkact',最后创建标签而不是基线。

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

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

答案 2 :(得分:1)

仅供参考:以某种方式对您有用:Moving from SVN to ClearCase

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

是的,CollabNet提供专门用于此目的的商业产品,称为CollabNet Subversion Connector.

答案 5 :(得分:1)

Clearvision还有一个商业工具就是出于这个目的,可以在这里找到:

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

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

答案 6 :(得分: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命令参考。