是否适合的ClearCase我们的发展过程?(Does ClearCase fit our deve

2019-07-31 22:22发布

所以,让我描述我们目前的处境。 我们是有经验的Java开发者一个小团队(6),在一个大的丧失是由在广大SAP和Siebel配置器团队。
而所有其他的球队目前正在使用VSS,主要是作为一个跳马系统,我们的团队,因为它最适合我们的敏捷方法(评估DVCS以及之后)有Subversion的开关。

现在,每个人都被要求转移到ClearCase中,并且因为它们是用户的最大部分的所有迁移工作被提上了VSS用户。
正如我们留在我们自己的,不知道是不是真的ClearCase中,我们有一些担心它不适合我们目前的工作流程。

这是我们目前正在如何每天工作:

  • SVN仓库遵循/树干,/枝,/标签结构。
  • 每个开发者都有在库自己的沙箱,用于测试和原型设计的目的。
  • 我们大量使用的新功能开发分支,以及用于它们合并起来促进他们回到主干之前做一些集成测试。
  • 在Java中的工作,我们是用来做重构和Eclipse是一个很大的帮助。 很多类和包重命名为每天完成。
  • 外部属性:根据不同的项目如何演变,一些碎片可能被重复使用,造成了项目的几个项目分开,原有的遗体通过SVN集成。
  • 我们使用的关键字替换为一些元素,因为它是一个非常简单的方法来知道他就是改版测试测试仪。
  • 我们的Subversion版本库被链接到哈德森运行测试套件和促进有效的标记它们的基础之上。

所有我知道的ClearCase的时刻是,我们必须通过CCRC(或通过其Eclipse插件的版本)来使用它,而且它是非常鼓励我们联系我们的大部分项目,以一个ClearQuest项目问题跟踪管理。

你能启发我们有关的ClearCase将如何替代我们的颠覆,什么概念,有一个精确匹配(我不关心的同义词,但真正关心的概念),什么样的变化,你可以在整个过程中可以预见的。

谢谢。

Answer 1:

首先,这里有你可以阅读ClearCase的几个职位:

  • 什么是基本的ClearCase概念每个开发人员都应该知道的?
  • 如何利用ClearCase的的功能
  • ClearCase的优势/劣势

现在:

  • CCRC是指一个ClearCase专用Web服务器上的“网络观”,即快照视图......你最好有你的桌面,并且该服务器之间的良好LAN。

  • 分支机构是在ClearCase的一等公民,这意味着一个给定的ClearCase视图(这里的快照ccweb一个)只会给你访问一个分支。 如果你是用来同时在多个分支上工作,你需要一些意见。

  • 所有操作都是文件,每个文件,所以就在私有分支工作的想法,然后合并是因为所涉及合并的数量繁琐。
    我强烈建议在一个共同的分支工作对于一个给定的开发工作,一些开发商想解决的问题。
    如果他们想私人分公司和沙箱中,他们可以建立一个自己的ClearCase中的Git视图中查看没有问题。
    (注:快照视图,不能被视为一个沙箱:当您检查,在文件中,每一个其他开发人员会看到你的变化时,他们会做他们的快照视图的更新)

  • 在ClearCase的Eclipse插件不支持重构。

  • SVN的概念:外是不是真的支持在ClearCase中,除了通过链接。 或通过UCM基线的依赖关系。
    每个人都应该知道,这是更容易的二进制文件依赖于工作比源的依赖:如果外部是包括下一个项目的源文件的千年,它会在ClearCase中很麻烦(由于长期更新)。 如果你有几个罐子或DLL,也就是要快得多(加上这些都是其将实际部署的一个)。

  • 如果您正在使用UCM工作,就不可能从一个组件移动代码到另一个。 你将不得不clearfsimport在新确定的“共同”组件的主要标签。

  • 注:RCS的关键字替换被普遍认为...邪恶 ;)我会推荐一个单独的文本文件的版本或相关的重要文件标签在里面。 这工作正常交付的材料,而不是源文件。



Answer 2:

在我看来,CC是敏捷团队一个不错的选择。 原则上,你就可以用它来工作,但你将不可避免地失去你的生产力一定程度。 那种程度的量取决于如何好,同情是你的CC管理员。 他们必须清楚地了解开发团队的需求。

在我们的团队,我们有非常糟糕的次CC。 我们的管理员是远程的,并从团队的其余部分隔离,所以我们不得不通过邮件,并要求跟踪与他们沟通。 你可以把它想象多少时间。 我们不能升级到最新的版本,CC由于这一过程的费用和复杂性(以及一些行政负担,我猜)。 所以,我们使用的7.0版本的CC / CCRC。

这个版本的CCRC完全吸收。 你不能简单的用它重构。 你不能用它进行任意的合并。 您不能创建基线。 你甚至不能把文件列表中忽略。 顺便说一句,据我所知,CC只支持后者的CCRC版本,而不是在本地客户端CC忽略的文件。 我们的CCRC版本没有命令行界面在所有。

CC很大程度上依赖于服务器的通信,为此CC(和CCRC)离开开发商自身,当他试图脱机工作。 CC回购并非没有CCRC或远程桌面(鼠标点击响应时间为分钟量级的)远程可用。

CC与其他干扰的工具,因为它标志着所有文件为只读,并要求他们明确地修改之前签出。 因此,有Eclipse插件,你可以重构。 但是,与任何其他工具,你的运气了。 你需要前检查出文件,或将其强行修改,从而使它们成为劫持。 有你使用其他IDE,awk或者sed脚本或东西一样,你会得到的问题。 即使你只使用Eclipse,涉及CC操作(这意味着所有的重命名重构等)的速度很慢,因为CC是缓慢的。

关于CC的唯一的好处是,它善于合并和合并跟踪。 但是Subversion 1.5得相当接近这一点。 反正,它不给我买成使用CC。

我承认我的尖锐负面看法主要是由我个人不愉快的经历形成的。 但我保证,即使在理想的CC安装与完美工艺和管理,您的工作效率会遭受反正。 这是因为在服务器CC的过度依赖,“退房检查在”严格锁定的方法。 它提供了一些“变通”(我宁愿叫他们组装机),以这种毫无保留的一样签出并挟持状态,但他们加上自己的问题。 CC不断站在你和你的代码之间。

顺便说一句,我想,IBM Rational的迟早会他们的客户迁移到Jazz平台 。 它的Rational Team Concert是一些与“敏捷的味道”。 它有10名开发人员免费版,并与CC(但不知道它是免费的太)一些整合。 所以,你可以试试看。 我不相信任何来自IBM的Rational好,虽然。



Answer 3:

下面是与ClearCase的问题:

ClearCase的是在20世纪90年代创建回来时,你的桌面系统上的工作站甚至可能不会有一个磁盘驱动器 - 更不用说空间。 此外,您的桌面系统可能是内存有限的和缓慢的。

ClearCase的是一个伟大的答案。 浏览过上查看服务器上。 住的VOB一个VOB服务器上。 专用机是快,快,快。

ClearCase中已经得出,可以改为使眼色让你的机器很慢试图编译代码的对象。 什么是节省时间,这是!

而且,ClearCase中的VOB结构意味着你可以做的事情,几个版本控制系统能做到。 例如,你可以cd到一个文件,如果你附加@@上的名称。 这让你看到所有的分支,标签,而该文件的所有版本。 你可以简单地运行标准的Unix工具来搜索的差异,等等。

随后,世界变了:

  • 桌面系统得到了更强大。 你有磁盘空间,内存,和原始的处理能力。 本地驱动器上创建一个Checkout工作区(你肯定有一个),意思是说你没得依靠这是越来越慢,因为越来越多的网络程序出现在网络。 在派生类对象眨眼? 哎呀,我的机器可以建立吸盘快5倍的ClearCase可以找到一个合适的派生类对象。

  • 视窗。 ClearCase的设计与Unix的考虑。 钩子可以在本地系统上运行,因为每个人都有自己的桌面上安装Perl中,你可以很容易地确保他们都是同一版本。 哎呀,你可以有一个NFS安装在/ usr / local目录(我知道,但网络local目录中是常见的),用Perl或任何安装的正确版本,和你的钩子会工作。 Windows没有发挥得这么好。 钩子成了头疼的问题。

  • 再次视窗:ClearCase的依赖于Unix工具很好。 窗户没有他们。

  • 敏捷开发:在ClearCase的开发,发展模式是由相互隔离的开发商之一。 你可以工作速度快了很多,如果你没有不断地担心另一开发商更改您的系统。 在ClearCase的分支是很容易。 你可以给每个人自己的分支,然后他们就完成了的时候才能重新合并到主分支。 合并来回! 这很容易在ClearCase中。 哎呀,UCM是在非常基础之上。 不幸的是,该战略要求的完整的学科。 你必须不断提醒开发人员合并他们的代码,这样其他开发人员可以看到他们。 有这种权利发生了发行前几十个开发商都尝试自己修改合并到集成分支的必然合并紧缩。 敏捷开发去除开发商隔离的概念。 你让小的变化,并跟踪与别人在做什么。 因此,“奥普拉分支”的概念(你得到一个分支!你得到一个分支!每个人都有一个分支!)不再使用。

  • 所以,现在你有一个快速的系统用大量的磁盘空间和内存。 您可以一次有三个或四个独立的检出。 动态视图的优势根本就没有克服的是狗缓慢和网络密集的缺点。 快照视图帮助,但他们删除所有的ClearCase法宝之一曾经有过。 换句话说,为什么要用那么大和笨重的ClearCase就像是CVS时,你可以只是简单的摆在首位使用CVS系统?

  • 最后ClearCase是困难的。 早在过去,当开发者所有的系统和网络专家,学习的ClearCase的来龙去脉可以预期。 制作的观点并不比学习YACC语法更难。 不过,开发人员而不是系统精明的,因为他们曾经是。 他们是为什么呢? 你不需要知道存储器中,以便如何在Java或C#编程。 开发人员不再需要了解100种不同的工具来完成他们的工作。 ClearCase的训练可以休息几天,和学习的ClearCase的来龙去脉可能需要数周。 在ClearCase中,我已经明白了看法语法做简单的事情像一个分支修改代码。 有了CVS,它只是一个简单的命令。

ClearCase的简直就是太复杂,速度慢,且价格昂贵。 而且,其中很大一部分是阿特里亚了当他们建造的ClearCase的赌注:1)。 开发人员愿意学习,因为他们无论如何都要学习其他100个工具。 2)。 相比于网络服务器你的台式机是缓慢的,微小的。 “在云中”所做的一切,速度更快。 3)。 ClearCase的集中能力是一个很大的优势为公司自一个站点管理和支持一切。

所有这三个假设被证明是假的,正因为如此,越来越少的公司甚至考虑ClearCase的。 也许买回来的时候合理PureAtria,如果合理将其带入21世纪,使其体积更小,更轻,更便宜,它可能仍然是一种广泛使用的工具。 但是,理性过于忙于使发展更令人费解为了整合所有他们买成一个集中的发展过程中的漂亮的工具。 通过IBM的Rational买的时候,ClearCase中已开始流血用户。



Answer 4:

小发明,

我目前通过同样的问题会因为你,只是从另一个角度看 - 我是一个ClearCase管理员试图从SVN迁移出来,一队到ClearCase中。

CCRC被吹捧为以开发Java使用的工具。 我不能完全肯定,我相信 - CCRC(ClearCase的远程客户端)的设计是为了帮助开发人员从主基础设施远程工作。 代码保存到桌面,以协助在访问速度 - 但有进出不能忽视检查的开销。

重构是从CCRC技术上是可行的,但是是不可能的,如果从基础设施断开做重构 - 该工具将不会让你失望。

还有其他问题与Eclipse工作区与CCRC视图很好地拟合中 - 你可以(根据环境的分支结构)具有与工具的绝对路径的问题。

东西铭记 - 并可能考虑 - 是ClearCase并不做香草快照视图。 我不同意VonC(用于也许是有史以来第一次,他是一个宏大的管理员),因为我相信CCRC视图(这是所谓的网络视角)从本地快照视图,让你可以在一个环境中开发了很多更像是完全不同的SVN - 特别是如果你正在寻找做Java开发。

至于ClearCase和哈德森,我曾与安德鲁拜耳交谈,得到的ClearCase插件的工作更容易动态视图一点 - 它开始发挥作用的0.9版本。 他是哈德森社区相当活跃成员,所以如果你有这个插件的问题,提出的问题应该得到很快解决。

我虽然可以给予最大的建议是,只是因为它是不同的,但这并不意味着它更糟糕。 要有耐心,你会惊奇地发现,在控制的ClearCase的水平可以给你,如果你阅读文件,把你的时间。

祝好运!

斯图尔特



Answer 5:

ClearCase是一个功能强大的软件配置管理工具,你最概括为您的日常活动的东西通过ClearCase的是可能的。

ClearCase的有意见的概念,它类似于你所提到的沙箱。 随着配置规范的一些基本知识(规则集来接从资源库中元素的版本),更容易做分支和存在于不同的分支进行修改的合并了良好的支持。

一个活动,其中我不知道是否是支持或不为关键字替换。 即使ClearCase支持不关键字替换,你可以创建一个签预触发自动执行关键字替换。

但它不是我清楚你的使用ClearCase的所有交互是否将只能通过CCRC(ClearCase远程客户端)独自一人。 我没有使用CCRC不知道什么所有的东西都通过CCRC支持。



Answer 6:

ClearCase是最强大的版本系统我知道。 所有列举的任务支持。



文章来源: Does ClearCase fit our development process?