SVN到Clearcase的导出

5

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

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

谢谢, 肯特


@Don:你认为这完全是个坏主意吗?能详细说明一下吗? - Kent Boogaart
不一定。我只是理解你的痛苦。Clearcase是可行的,但它很慢(甚至比Subversion还要慢)而且使用起来很麻烦。好的一面是,CC确实有一个优秀的图形化视图工具。 - Don Branson
7个回答

3
我在ClearCase视图中直接使用Git
如果我有一个需要与之同步的SVN仓库,那么我可以使用git2svn将内容转换回SVN。

注意:为了使工具能够直接在ClearCase视图中运行,我必须使用快照视图,以便即使文件尚未签出,也可以写入文件。然后对于我认为已完成的任何活动,我更新快照视图,这使我能够列出所有“劫持”的文件。我签出它们,然后签入它们。


我认为在这种情况下(客户的ClearCase仓库),使用SVN存在以下问题:
  • 引入另一个中央仓库(这意味着要提交,您必须访问您的私有中央SVN仓库,并且对于“对客户提交”,必须访问ClearCase VOB - 版本对象基础的中央仓库,在ClearCase术语中称为“仓库”)。
  • 引入了另一种分支建模,在SVN中,它是目录中的便宜副本,而在ClearCase中,它是不表示为目录的元数据(分支)。这意味着SVN检出的物理树可能与ClearCase快照视图更新不匹配,因为SVN检出的某些目录在ClearCase中根本不存在。

至少,使用Git,您可以:

  • 有私人仓库(您不会添加每个人都应该访问的另一个中央仓库)
  • 相同的分支模型(至少在“不通过目录表示分支”方面)

2
我们的项目需要这个。团队更喜欢使用svn,而公司标准是ClearCase。因此,我编写了一个脚本来不断地将主干迁移到ClearCase,并在我们的构建服务器上运行它。
我把脚本放在这里:http://dvae.net/blog/2009/09/clearcase-to-svn/ 我们在构建服务器上设置了一个定期运行的作业,使用clearfsimport进行迁移。我们使用Luntbuild作为构建服务器,但cruise control也可以正常工作。像普通构建一样,我们将脚本设置为仅在检测到svn修改时运行。由于ClearCase服务器位于不同的国家,所有操作都很缓慢,同步需要40分钟才能运行,因此我们将作业每20分钟运行一次。建议尽可能频繁地运行。
该脚本基于ClearCase UCM,如果你不是,则必须删除“cleartool mkact”,并在最后创建标签而不是基线。
我将ClearCase注释设置为自上次同步以来所有SVN提交的串联。
我发现它很可靠,唯一失败的原因是如果ClearCase触发器(如“恶意双胞胎”触发器)停止了checkin。当发生这种情况时,构建会失败,Lunbuild会发送电子邮件,然后我必须手动进行反向历史合并以消除恶意双胞胎问题,提交并重新运行。

@David,你的博客无法访问(答案中的链接已经失效),能否再次分享你的脚本?谢谢。 - lontivero

1
如果ClearCase支持命令行,您将能够编写一个脚本来检入ClearCase,并配置SVN在提交代码时自动执行它(post-commit hook)。

1

有趣 - 謝謝。 但是,似乎必須使用CollabNet子版本“擴展”,而不是它與任何老的svn存儲庫一起工作。 - Kent Boogaart

1

仅供参考:这可能对你有所帮助:从SVN迁移到ClearCase

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


1

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(Concurrent Versions System)非常相似,请参阅IBM Rational ClearCase命令参考了解有关此导出实用程序的更多详细信息。


我认为这些是从ClearCase迁移到SVN - 我认为OP想要使用SVN客户端,但将代码保留在ClearCase中。 - mmmmmm

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