ClearCase适合我们的开发过程吗?

时间:2009-08-11 07:54:32

标签: svn process clearcase

那么,让我来描述一下我们目前的情况。我们是一个由经验丰富的Java开发人员组成的小团队(6人),在一个由SAP和Siebel配置器组成的大型IS团队中迷失。 虽然所有其他团队目前都在使用VSS,主要是作为存储系统,但我们的团队已经切换到Subversion(在评估DVCS之后),因为它最适合我们的敏捷方法。

现在,每个人都被要求转移到ClearCase,所有迁移工作都放在VSS用户身上,因为他们是用户的最大部分。
由于我们自己离开并且不太了解ClearCase,我们担心它不适合我们当前的工作流程。

目前我们正在开展日常工作:

  • SVN存储库遵循/ trunk,/ branches,/ tags结构。
  • 每个开发人员在存储库中都有自己的沙箱,用于测试和原型设计。
  • 我们集中使用分支进行新功能开发,并将它们合并在一起进行一些集成测试,然后再将它们提升回主干。
  • 在Java中工作,我们习惯于进行重构,Eclipse对此非常有帮助。每天都会进行大量的类和包重命名。
  • 根据项目的演变方式,可能会重复使用某些部分,从而导致项目在多个项目中分离,原始部分通过svn:external属性进行集成。
  • 我们对某些元素使用关键字替换,因为这是一种非常简单的方法,可以让测试人员了解他正在测试的修订版本。
  • 我们的Subversion存储库链接到Hudson,用于运行测试套件并通过标记它们来促进有效构建。

目前我对ClearCase的所有了解都是我们必须通过CCRC(或通过其eclipse插件版本)使用它,并且我们非常鼓励我们将大部分项目链接到ClearQuest项目问题跟踪管理。

您能否告诉我们ClearCase将如何更好地替代我们的Subversion,哪些概念具有完全匹配(我不关心同义词,而是关注概念),以及您在整个过程中可以预见到哪种变化。 / p>

感谢。

6 个答案:

答案 0 :(得分:3)

首先,这里有一些你可以阅读的关于ClearCase的帖子:

现在:

  • CCRC意味着“网络视图”,即ClearCase专用网络服务器上的快照视图......您最好在桌面和服务器之间建立良好的LAN。

  • 分支机构是ClearCase中的一等公民,这意味着一个给定的ClearCase视图(这里是一个快照ccweb one)将只允许您访问一个分支。如果您习惯一次处理多个分支,则需要多个视图。

  • 所有操作都是每个文件的文件,因此,由于涉及的合并次数,处理私有分支然后合并的想法很麻烦。
    我强烈建议为一些开发人员想要解决的特定开发工作开发 common 分支 如果他们想要私人分支和沙箱,他们可以设置Git view within their ClearCase view没有问题 (注意:快照视图不能被视为沙箱:当您签入文件时,每个其他开发人员在更新其快照视图时都会看到您的更改)

  • ClearCase Eclipse plugin确实支持重构。

  • 除了通过链接之外,ClearCase并不真正支持svn:external的概念。或者通过UCM基线依赖性 应该意识到使用二进制文件依赖项比使用源依赖项更容易:如果你的外部文件包含下一个项目的数千个源文件,那么它在ClearCase中会很麻烦(由于长时间的更新)。如果你包含一些jar或dll,那就快得多(加上实际部署的那些)。

  • 如果您正在使用UCM,则无法将代码从一个组件移动到另一个组件。您必须clearfsimport新标识的“公共”组件中的主要标签。

  • 注意:RCS关键字替换为generally considered... evil;)我建议使用单独的文本文件,其中包含相关重要文件的版本或标签。这适用于交付材料,而不适用于源文件。

答案 1 :(得分:3)

在我看来,CC是敏捷团队的糟糕选择。原则上,你将能够使用它,但你将不可避免地在某种程度上失去你的生产力。该学位的数量取决于您的CC管理员的优秀程度和同情心。他们必须清楚地了解开发团队的需求。

在我们的团队中,我们与CC的关系非常糟糕。我们的管理员是远程的并且与团队的其他成员隔离,因此我们被迫通过邮件和请求跟踪器与他们进行通信。你可以想象它需要多少时间。由于这个过程的费用和复杂性,我们无法升级到最新的CC版本(我猜一些管理负担)。因此,我们使用7.0版本的CC / CCRC。

这个版本的CCRC完全糟透了。你不能轻易地重构它。您无法与它进行任意合并。您无法创建基线。你甚至无法将文件放入被忽略的列表中。顺便说一下,据我所知,CC仅在后面的CCRC版本中支持被忽略的文件,而不支持在本机CC客户端中。我们的CCRC版本根本没有命令行界面。

CC高度依赖于服务器通信,因此CC(和CCRC)在尝试脱机工作时会自行离开开发人员。没有CCRC或远程桌面,CC repo无法远程使用(鼠标点击响应时间大约为分钟)。

CC干扰其他工具,因为它将所有文件标记为只读,并要求在修改前明确检出它们。所以,拥有Eclipse插件你就能够重构。但是使用任何其他工具你都运气不好。你需要先检查文件或强行修改它们,从而将它们变成劫持。让你使用另一个IDE,sed或awk脚本或类似的东西,你会遇到问题。即使您只使用Eclipse,涉及CC的操作(这意味着所有重命名重构等)都很慢,因为CC很慢。

关于CC的唯一好处是它擅长合并和合并跟踪。但Subversion 1.5非常接近这一点。无论如何,它不会让我使用CC。

我承认我的尖锐负面意见主要来自我个人的不良经历。但我确信,即使在完美的流程和管理的理想CC设置中,您的工作效率也会受到影响。这是因为CC过度依赖服务器和“Check out-check in”采用严格的锁定方法。它提供了一些“解决方法”(我宁愿称它们为kludges),就像无保留的检查和劫持状态一样,但它们会增加自己的问题。 CC始终站在你和你的代码之间。

顺便说一下,我想IBM Rational迟早会将他们的客户转移到Jazz platform。它的Rational Team Concert具有“敏捷的味道”。它有10个开发人员的免费版本和一些与CC的集成(但不确定它是否也是免费的)。所以你可以尝试一下。不过,我不相信IBM Rational的任何好处。

答案 2 :(得分:3)

答案 3 :(得分:2)

小发明,

我目前正在遇到与您相同的问题,除了从另一个角度来看 - 我是一名ClearCase管理员试图将团队从SVN迁移到ClearCase。

CCRC被吹捧为用于开发Java的工具。我不完全确定我相信--CCRC(ClearCase Remote Client)旨在帮助开发人员从主基础设施远程工作。代码保存到桌面以帮助提高访问速度 - 但是有一个不容忽视的签入和签出开销。

从CCRC技术上可以进行重构,但如果与基础设施断开连接则无法进行重构 - 该工具不会让您失望。

Eclipse工作区还存在其他与CCRC视图很好地匹配的问题 - 您可能(根据环境的分支结构)存在工具的绝对路径名问题。

需要记住的一点 - 也许是要考虑一下 - 是ClearCase确实做了香草快照视图。我不同意VonC(可能是他第一次,他是一个helluva管理员)因为我认为CCRC视图(称为Web视图)与本机快照视图完全不同,后者允许您在更加像环境中开发SVN - 特别是如果您希望进行Java开发。

对于ClearCase和Hudson,我已经与Andrew Bayer谈过,使用动态视图让ClearCase插件更容易工作 - 它在0.9版本中发挥作用。他是Hudson社区的活跃成员,所以如果你有插件问题,提出的问题应该很快得到解决。

我能给出的最大建议是,仅仅因为它不同,并不意味着它更糟。请耐心等待,如果您阅读文档并花时间,ClearCase可以给您的控制水平会让您感到惊讶。

祝你好运!

斯图尔特

答案 4 :(得分:1)

Clearcase是一款功能强大的软件配置管理工具,您通过Clearcase可以将大部分内容列为日常活动。

Clearcase具有视图的概念,类似于您提到的沙箱。 通过一些配置规范的基本知识(从存储库中选择元素版本的规则集),可以更容易地进行分支,并且可以很好地支持在不同分支中进行的变更合并。

我不确定是否支持的一项活动是关键字替换。即使Clearcase支持没有关键字替换,您也可以创建一个pre-checkin触发器来自动执行关键字替换。

但我不清楚您与Clearcase的所有交互是否仅通过CCRC(Clearcase Remote客户端)。我没有使用CCRC,也不知道CCRC支持所有内容。

答案 5 :(得分:0)

clearcase是我所知道的最强大的版本控制系统。支持所有枚举任务。

相关问题