因为我目前在学习IBM Rational ClearCase方面遇到了困难,所以我想听听你的专业意见。
我特别关心与其他版本控制系统(如Subversion或Git)相比的优缺点。
因为我目前在学习IBM Rational ClearCase方面遇到了困难,所以我想听听你的专业意见。
我特别关心与其他版本控制系统(如Subversion或Git)相比的优缺点。
ClearCase的缺点 - 对此处最深入的帖子的补充。
合并工具不值得使用。它几乎没什么作用,不会记住您做出的任何决定,只是一个华丽的 diff 工具。
合并工具必须检查目录,才能确定是否需要进行合并。这有点荒谬。
我在工作中使用BitKeeper(假设为Git),即使存在冲突,合并两个存储库也是如此简单和用户友好,即使使用命令行也很容易。而 ClearCase 却有大量 GUI 工具的过程又漫长又费力,而且极易出错。
所有 GUI 工具都需要大量的延迟。甚至查看文件上可执行的操作都需要高速连接。因此,即使在家中使用高速互联网,对 ClearCase 工具上的文件右键单击可能需要一两分钟,因为需要进行大量的网络操作。
如果某人的视图规范与团队不同,他们可能会完全搞砸存储库或签入。这相当荒谬,因为没有人可以简单地检出一些分支;他们需要适当的视图规范,这将意外地为他们提供正确的内容。整个概念可以很好地灵活应用,但99%的时候它会带来很多痛苦。我是否提到过你不能通过 Microsoft Outlook 发送你的规范邮件,因为 CC 工具不接受 UTF-8,所以你无法复制粘贴它?
我对CC绝对没有任何好话要说。在两个公司使用了 2 年,转投别处后感到非常开心。它也不可能在家中只是尝试自己的项目,所以你仍然需要在家学习 SVN 或 Git,并被迫在工作中经历 ClearCase 的痛苦。我认识的没有人是自愿使用 CC 的。他们只是因为某个经理在工作中决定 CC 是救赎之路,而强迫每个人都迁移到它。事实上,我的最后一家公司从 CVS 迁移到 ClearCase,一年后再从 ClearCase 迁移到 SVN。它是那么讨厌。
ClearCase 不仅是让你产生拒绝的一个因素。它就像住在遭受蚂蚁侵扰的房子里,每只蚂蚁最多只是轻微的不便,但是整个蚁群会让你发疯。
我正在尝试将一些评论整合成一个实际的帖子。我并不是来说服你哪个更好,只是想提出以下几点:
ClearCase 是一款好工具,但是它是一个复杂的工具。无论如何都无法避免这一点——它没有“简易安装”模式。从技术角度来看,git 或 SVN 无法做到 ClearCase 无法做到的事情(尽管术语通常不同,因为开源项目倾向于在已经存在的术语上发明新的分类),但是某些系统针对特定设计的一些事情肯定更容易/更难。ClearCase 的“快照”视图基本上与从 SVN 或 CVS 检出存储库时所拥有的视图相同——它是源代码在本地机器上的副本,具有指向中央服务器的指针,供工具查询版本历史等等。一旦创建了这些视图,您可以在没有与 ClearCase 服务器任何网络连接的情况下使用这些视图,并且您可以“回收利用”这些视图,以避免在要移动到另一个分支进行工作时重新下载整个存储库。 “动态视图”基本上是 ClearCase 的发明,并且是局域网的标准操作模式。它们看起来与检出 SVN 存储库相同,但是在您进行更改之前,它们实际上并未复制任何文件。通过这种方式,可以立即访问该视图,但是如果主要的 ClearCase 服务器不可用,则无法使用该视图,并且通过高延迟连接进行工作时很不愉快。它们还具有一些方便的功能,例如可以在任何拥有访问创建它们的服务器的机器上作为网络驱动器挂载它们,因此,如果您的 Windows 工作站崩溃了,您只需登录另一个工作站,挂载您的视图,然后继续工作,因为所有文件都存储在 VOB 服务器(对于您尚未在此分支上修改的文件)或 view_server 中(对于您在此视图中仅创建或修改的文件)。
此外,这值得单独一段...clearmerge 几乎完全值得购买费用。这是我使用过的最好的合并工具。我坚信,由于缺乏高质量的合并工具,SCM 中出现了许多不良实践,因此 CVS 用户从未学会正确使用分支,这种对分支的恐惧已经传播到了当前日子而没有特别好的原因。
好的,话虽如此,如果你正在寻找不使用ClearCase的原因,这并不难找到,尽管我认为这样做是错误的。实际上,你应该需要找出使用ClearCase的好理由,而不是找出不使用ClearCase的理由。在任何版本控制情况下,你都应该认为ClearCase是过于复杂的工具或者不适合这个工作,然后看看是否有一些情况鼓励你仍然使用它。仅仅因为拥有IBM或Rational的标志并不是一个好理由.. :-)
除非你能回答以下所有陈述的问题都是“是”,否则我甚至不会考虑使用ClearCase:
cleartool
(7.1版本之前),更别说动态视图了。在Git中,解决诸如如何交互式地提交一些更改(并将其余部分留待以后)这样看似复杂的任务非常有趣。我时刻感到版本控制系统允许我以适合自己的方式组织代码和历史记录,而不是历史记录是我们如何使用版本控制系统的偶然事件。"Git意味着永远不必说'你应该有'"。
在我的工作中,我使用Git处理各种轻量级任务,甚至在ClearCase内部也是如此。例如,我进行TDD,并在一堆测试通过并准备重构时提交到Git。当任务最终完成时,我会检入ClearCase,而Git则帮助我准确地查看我正在更改的内容。只需尝试让ClearCase对几个文件进行差异比较-它无法做到!使用谷歌来找出人们已尝试的各种黑科技。这是版本控制应该开箱即用并易于操作的功能!CVS已经拥有这个功能几十年了!
我个人认为,唯一使用它的理由是如果你坚定地遵循RUP。
性能。
ClearCase很强大,稳定(如果得到适当的维护和监督),但速度较慢。有时候会像地质运动一样缓慢。
动态视图会导致可怕的构建时间,快照视图可能需要花费很长时间才能更新(对于大型项目来说可以用午餐时间来等待)或签出(可以回家休息一天)。
开发人员将花费一半的时间在开始任何工作之前弄清楚Clearcase,一旦他们弄清楚了,他们会在本地安装Git,并仅在需要时推送到Clearcase repo。
您需要雇用一位专门的Clearcase管理员。
我最近也遇到了类似的情况。也许你可以从我的故事中学到一些东西。
我被分配到的团队在使用一个复杂笨重的工具,并且使用方式容易出错。我首先尝试向他们推销我自己喜欢的工具和流程,但是这次尝试失败了。我很惊讶他们会选择一个既繁琐又不够有效率的环境而不是更简单更有效的环境。原来他们想要有纪律性,在使用痛苦的流程时感觉到有纪律性。听起来很奇怪,但这是真的。他们还有很多其他误解。当我弄清楚他们的需求后,我们实际上仍然使用同样的工具套件(Serena),但是大规模地改变了它的配置。
我给你的建议是找出对你的团队最重要的事情。批评 ClearCase 并不能帮你任何忙,除非你能满足他们的兴趣。此外,找出他们为什么不想使用其他替代方案。基本上做一些需求收集并根据需要选择工具。根据你的选择,谁知道,Clear Case 最终可能成为最佳选择。