我有一位非常坚持使用 Clearcase 的客户。是否有任何工具/脚本可以让我的团队针对 SVN 存储库(或除 Clearcase 之外的任何东西)工作,但会定期自动将变更集同步回 Clearcase VOB?
我的想法是,如果存在这样的工具,并且它是自动的、可靠的和透明的,那么可能会说服客户端允许我们对抗 SVN。
谢谢,肯特
我有一位非常坚持使用 Clearcase 的客户。是否有任何工具/脚本可以让我的团队针对 SVN 存储库(或除 Clearcase 之外的任何东西)工作,但会定期自动将变更集同步回 Clearcase VOB?
我的想法是,如果存在这样的工具,并且它是自动的、可靠的和透明的,那么可能会说服客户端允许我们对抗 SVN。
谢谢,肯特
我直接在 ClearCase 视图中使用Git 。
然后git2svn
,如果我有一个 SVN 存储库要与之同步,我可以将内容备份到 SVN。
注意:对于直接在 ClearCase 视图中工作的工具,我必须使用快照视图,以便写入文件,即使它们尚未签出。然后,对于我认为已完成的任何活动,我都会更新快照视图,它允许我列出所有“被劫持”的文件。我检查它们,然后检查它们。
在这种情况下(客户端的 ClearCase 存储库)使用 SVN 时我会看到的问题是:
至少,使用 Git,你有:
对于我正在进行的一个项目,我们正是需要这个。团队更喜欢 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 会发送一封电子邮件,然后我必须手动执行反向历史合并以摆脱邪恶孪生问题,提交并重新运行。
仅供参考:它可能以某种方式对您有用:从 SVN 迁移到 ClearCase
这不会同步数据,但如果您需要迁移,它可能会有所帮助。
如果 clearcase 有命令行支持,您将能够编写一个脚本来检查 clearcase,并配置 svn 以在提交代码时自动执行它(提交后挂钩)
是的,CollabNet 专门为此目的提供了一种商业产品,称为CollabNet Subversion 连接器。
Clearvision 还为此目的提供了一个商业工具,可在此处获得:
http://www.clearvision-cm.com/clearcase-subversion-git-mercurial-integration.html
它可以与 subversion、git 或 Mercurial 同步 clearcase。
那篇文章描述了几种方法:
http://www-01.ibm.com/support/docview.wss?ratlid=cctocbody&rs=984&uid=swg21258843。
基本上变种:
1) 如果您对维护版本历史不感兴趣,只想从最新版本或预选配置开始,您可以使用clearfsimport命令。查看有关 clearfsimport (cleartool man clearfsimport) 主题的 ClearCase 命令参考指南以获取更多信息。
2)如果您需要版本历史,您可能需要评估开源工具svn2cc。
解决方法:
可以在 Subversion 中创建表示开发流中某些里程碑的视图。从那里,您可以使用上述命令 clearfsimport 依次从每个视图导入版本。此方案中的 clearfsimport 命令将在每次运行时创建元素的新版本,并自动将标签应用于导入的版本。
您可以尝试使用 clearexport_cvs,因为 Subversion 存储库与 CVS(并发版本系统)的存储库非常相似,有关此导出实用程序的更多详细信息,请参阅 IBM Rational ClearCase 命令参考。