因为我目前正在努力学习 IBM Rational ClearCase,所以我想听听您的专业意见。
与 Subversion 或 Git 等其他版本控制系统相比,我对优势/劣势特别感兴趣。
因为我目前正在努力学习 IBM Rational ClearCase,所以我想听听您的专业意见。
与 Subversion 或 Git 等其他版本控制系统相比,我对优势/劣势特别感兴趣。
您可以在我的 SO 回答中找到 ClearCase 和 Git 之间的一个很好的比较:
“每个开发人员应该知道的基本 ClearCase 概念是什么? ”,说明了一些主要差异(以及 ClearCase 的一些缺点)
ClearCase 最重要的缺点是其旧的“以文件为中心”的方法(与SVN 或 Git 或 Perforce 中的“以存储库
为中心”相反......)
这意味着每次签出或签入都是针对每个文件完成的。操作的原子性在文件级别。
将它与一个非常冗长的协议和一个在开发人员工作站和 VOB 服务器之间可能有多个节点的网络结合起来,您最终会得到一个相当慢且效率低下的文件服务器(ClearCase 是其核心)。
File-per-file 操作意味着:缓慢的递归操作(如递归检出或递归“添加到源代码控制”,甚至 by clearfsimport
)。
一个快速的 LAN是强制性的,以减轻该协议的副作用。
要考虑的另一个方面是它的集中方面(即使它可以通过其多站点复制 VOB 功能“分布”)
如果网络不允许访问 VOB,开发人员可以:
您可以通过复制 Vob 来获得一些分布式 VCS 功能。
但:
正如“如何利用 ClearCase 的特性”中提到的,动态视图很棒(一种通过网络查看数据而无需将它们复制到磁盘的方式),但主要特性仍然是UCM:如果你有它,它可以成为真正的资产具有复杂工作流程的大型项目。
这方面的一些缺点:
在不使用 UCM 的情况下使用 ClearCase 意味着必须定义一个策略来:
cleartool find
”请求……ClearCase 权限管理完全建立在系统权限之上。
这意味着您需要将您的用户注册到正确的系统组,当您必须输入 IT 服务的票证以便他们进行正确注册时,这并不总是容易做到的。
再加上一个异构环境(Windows 上的用户和 Unix 上的服务器),您需要在 Unix 和 Windows 上注册您的用户!(具有相同的登录名/组名)。除非您在两个世界之间放置某种 LDAP 对应关系(例如Centrify)
cleartool
”是 ClearCase 命令行界面),这意味着任何脚本(Perl 或其他语言)都包含解析这些cleartool
命令的输出)视图存储相当于 SubVersion 的“.svn”,除了每个视图只有一个“视图存储”,而不是 SubVersion 工作空间的所有目录中的多个 .svn。那很好。
糟糕的是,视图中的每个操作(简单的“ ls
”、结帐、检查……)都会触发对管理视图服务器的view_server进程的网络请求。
2个选项:
第一种模式意味着:您必须备份自己正在进行的工作(私人文件或签出文件)
第二种模式意味着:您的工作站可能不可用,您只需登录另一个即可取回您的视图(执行私人快照视图的文件)
关于动态视图的侧面讨论:
添加到“动态视图”方面,它有一个优点(它是动态的)和一个缺点(它是动态的)。
动态视图非常适合设置简单的环境以在小团队之间快速共享小型开发:对于小型开发工作,动态视图可以帮助 2 或 3 个开发人员不断保持联系,当一个人的提交中断时立即看到其他观点中的一些东西。
对于更复杂的开发工作,快照视图提供的人工“隔离”更可取(只有在刷新或“更新”快照视图时才能看到更改)
对于真正不同的开发工作或课程,仍然需要一个分支来实现真正的代码隔离(在某些时候需要合并,ClearCase 处理得很好,尽管速度很慢,逐个文件)
关键是,出于正确的原因,您可以同时使用两者。
注意:我所说的小团队并不是指“小项目”。ClearCase 最适合用于大型项目,但如果您想使用动态视图,则需要设置“任务分支”以隔离每个分支的小型开发工作:这样一个“小团队”(您的大团队的一个子集) ) 可以有效地工作,在其成员之间快速共享其工作。
如果您在每个人都在做任何事情的“主”分支上使用动态视图,那么任何签入都会“杀死你”,因为它可能会引入一些不相关的“构建中断”与您当前的开发工作。
那将是动态视图的不良用法,并且会忘记它的其他用法:
直接在动态视图中开发并不总是最好的选择,因为所有(非签出)文件都是通过网络读取的。
这意味着您的 IDE 所需的 dll 或 jar 或 exe 将通过网络访问,这会大大减慢编译过程。
可能的解决方案:
成本是一个相当明显的劣势。不仅仅是许可成本,还有 ClearCase 专家的工资成本。据我所知,几乎每家使用 ClearCase 的公司似乎都至少有一个人,其唯一目的是驯服这头不守规矩的野兽。
复杂到需要全职保姆的事实也令人担忧。
系统的绝对噩梦。这让我希望我们能回到 VSS!(不要介意任何现代源代码控制系统,如 Subversion 或 Git!)
基本上,它非常缓慢、复杂且不可靠。哦,我有没有提到它贵得离谱?他们可能出售它的唯一方法是与从未使用过并且永远不会使用该产品的决策者交谈!我很确定世界上没有开发商会购买它。
原子提交和变更集是我对 ClearCase 最大的不满。假设您签入五个文件作为错误修复或重构的一部分。然后发现有些事情搞砸了,你需要恢复。祝你好运找到它们是哪五个文件以及每个文件需要的版本。但是,让我们退后一步。您刚刚完成了这五个文件的编辑,是时候提交了。前四个顺利通过。最后一个需要大规模合并。其他四个文件已签入。它们不会等待您在最后一个文件中完成必要的更改。我当然希望没有人更新或正在使用动态视图。持续集成构建服务器也会失败。
有时我们会创建一个完整的新目录,其中包含需要签入的文件,但在完成之前我们不想签入它们。现在还早,一切都还不稳定,那么为什么要检查那些你可能很快就会删除的东西呢?好的,到目前为止还不错。现在该签入了。您将新创建的文件夹添加到源代码管理。好吧,ClearCase 不是递归的,因此只签入了单个文件夹。使用 SVN,该文件夹及其下面的所有内容都会根据您的选择添加。开发人员需要记住添加所有内容,否则会丢失很多文件。
ClearCase 拥有这些文件和文件夹,因此除非您先签出,否则您无法修改任何内容。eclipse 插件在这里消除了很多麻烦。我无法告诉你有多少次我在 vi 中打开一个文件以进行快速更改,结果发现我忘记先检查它。结帐也不是递归的。
如果没有变更集,更新可能会非常缓慢。当您使用快照视图进行更新时,每个文件都会更新,而不仅仅是修改后的文件。我参与了一个包含 20,000 多个文件的项目。我会远程进入我的工作机器,开始更新,然后开车上班;喝咖啡;在它完成的时候去我的办公桌前。这听起来可能有些夸张,但遗憾的是并非如此。
除非您在一个非常小的团队中,否则动态视图很糟糕。如果是这样,你为什么还要有 ClearCase?我已经看到无数人的观点因为有人签入的文件破坏了其他人的观点而遭到破坏。您应该始终根据自己的观点更新和合并任何冲突。这样,更改只会影响您。使用动态视图,您不能在推回之前向下合并;你只是承诺和希望。
我知道成本可能不是一个大问题,但是为公司赚钱的开发人员会喜欢在有趣的活动或新设备上花费 5 万到 10 万美元(取决于 ClearQuest 许可证,这是一个常见的附加功能)(椅子、显示器等)。IBM 建议让员工保持 ClearCase 的运行。为什么不重新利用这些人为公司创造收入,而不是确保事情不会崩溃和烧毁?
我听说过不切换的一些原因:
ClearCase 唯一比其他文件做得更好的是分支单个文件,同时将其他文件与另一个分支保持在同一轨道上。
我在 Clearcase 所做的一切似乎总是很难。然而,我从未对其他系统产生过这种印象(有时可能是 CVS 除外)。
我使用过 SVN、CVS、Clearcase 和 Mercurial。
我所经历的与 ClearCase 相关的一切都是低效、丑陋、过于复杂、缓慢、混乱、昂贵和不便。
它似乎吸引了完全错了的经理和工程师。
该死的,IBM 和 Rational 必须有出色的销售人员才能销售如此糟糕的产品。
我对 ClearCase 的体验是一场灾难,我将支持 Don 的声明,即它需要一位常驻专家——不幸的是,我们有不止一位专家。我有使用过 CVS 和其他版本控制系统的经验,对概念很熟悉,但我发现 ClearCase 文档难以理解,不得不多次寻求帮助;不同的专家给了我相互矛盾的建议,以至于我们实际上破坏了 cd。也就是说,在我在 UNIX shell 中发出 ClearCase 命令后,“cd”命令失败并显示错误消息。
版本控制系统的基本任务非常简单。老实说,我认为六个命令就足够了,使用与其他文件配合得很好的文件方案。对我来说,ClearCase 看起来像是一位营销主管故意将事情复杂化以使产品看起来复杂而强大的结果。我听说它可以配置为以一种简单、安全、可靠的方式运行,但这同样需要专家的服务——开箱即用,它就像一把机动瑞士军刀。
由于这里给出的许多原因,我们只是将 CC 迁移到 Git。我想补充一个远离 CC 或任何其他商业源代码控制系统的理由。
您的重要业务数据是代码、其版本历史记录和所有元数据,例如提交评论、谁签入以及何时签入。
所有软件的使用寿命都是有限的。当您引入一个吞下重要业务数据(无论是代码、错误、客户数据还是其他)的新系统时,您应该始终问自己:我如何再次获取我的数据?如果你不能回答这个问题,你就不应该引入那个系统。
当我们迁移出去时,我们丢失了大部分历史记录和所有元数据。本质上,我们只有与发布版本相对应的历史记录,但是有关响应客户请求而进行了哪些更改的信息丢失了(我们在客户支持和错误票证系统中有该数据,因此它并没有完全丢失,而是与源代码不见了)。
在中短期内,这对我们来说将介于麻烦和问题之间。几年后,它不再重要,但也许 1-3 年它会很重要。
(有商业工具可以将 CC 迁移到其他 SCM,但它们被认为不足以满足我们的需求,我怀疑这是否可行。我们所做的最小导出花费了足够长的时间。)
吸取的教训是:永远不要将重要的业务数据委托给专有系统。
没有原子提交
一旦签入文件,就很难恢复到某个状态,因为不支持原子提交。签入多个文件时,每个文件都会获得一个新修订版(类似于 CVS),而不是签入本身。我认为这是一个至关重要的功能,因为您几乎不想还原单个文件,而是完成提交操作(应该映射任务)。使用 ClearCase,您只能通过使用标签恢复到某些状态。在实践中,每次签到都使用 ClearCase 标签是多余的,因此没有完成。
蹩脚的用户界面
ClearCase Explorer 的 GUI 只是个大笑话。可用性和丑陋的外观很糟糕。没有提供不同且通常必要的功能(例如,递归地签入已处理的工件)。与 cygwin 一起使用的命令行工具 cleartool 要好得多,但仍然有些东西不可用,比如递归地将新文件/文件夹添加到源代码控制中。如果我阅读了 50 行代码长脚本来解决这个问题,我不得不大笑。
高管理努力
管理 ClearCase 野兽远非显而易见或轻量级(与 CVS、subversion 或 Git 等其他 scm 系统不同)。预计会有不少专门的 ClearCase 专家来维持它的运行。
糟糕的表现
没有什么比让您的开发人员在与 SCM 工具交互时等待更糟糕的了,这就像在启用手刹的情况下驾驶一样。它会减慢您的大脑和工作速度。对于 10K 工件,将新文件添加到快照视图大约需要 30 分钟。相同数量的更新(未更改工件)大约需要 5 分钟。当进行大量试验并在不同的最新视图之间跳转时,意味着大量的等待。当您处理文件并且想要签入或更新它们时,情况会变得更糟。签出、签入和添加到源代码控制周期大约需要 10-15 秒,这显然是一场噩梦。当您重构重命名/移动类型或方法时,它会变得非常烦人(许多文件可能会受到影响)。
缺乏对分布式开发的支持
今天,软件开发通常是分布式的(开发人员分布在世界各地,致力于同一个产品/项目)。ClearCase 显然不适合这种情况,因为它非常不适合离线工作。进行签出(编辑文件/文件夹之前的操作)要求您已连接网络。在这里您可以使用劫持选项,但这只是一种解决方法(您基本上只是解锁文件系统上的文件)。如果您的开发站点远离您的 ClearCase 服务器,则签入/签出延迟甚至会急剧增加,以至于根本无法使用。有一些解决方法,例如使用 ClearCase Multisite(scm DB 副本技术),但您必须为此支付额外费用,而且对管理人员来说并非易事。
Git 作为替代品
虽然是开源的忠实粉丝+支持者,但我仍然愿意为好的软件花钱。但是看看 IBM 的怪物 ClearCase,我不会在这里投资,它有所有这些讨论过的缺点,而且 IBM 似乎没有投资资金来显着改进他们的产品。最近我看了一个 Git scm,它看起来很不错,尤其是它的分支+合并功能,ClearCase 有它的主要优势。
此信息取自http://www.aldana-online.de/2009/03/19/reasons-why-you-should-stay-away-from-clearcase/
可能是有史以来最糟糕的软件。我不会为任何使用理性的公司工作。除了 CC 在动态构建中经常崩溃和重新启动我的工作站之外。当您将某些内容推送到源代码控制并且 CC 做它最擅长的事情时会发生什么,崩溃?然后您的代码是否已放入 lost+found 中,可能已备份到某个地方?不,它永远消失了。因此,如果您曾经处于使用这个巨大的昂贵软件的可怕境地,请保留所有内容的副本。干得好 Rational / IBM。捕获源代码控制的最重要部分的方式,即可靠性。慢慢死。
ClearCase 的缺点——这里最深入的帖子的补充。
合并工具不值得。它几乎没有帮助你,不记得你做出的任何决定,它只是一个美化的差异。
合并工具必须检查目录以检查它们是否需要合并。它有点疯狂。
我在工作中使用 BitKeeper(假设是 Git),即使存在冲突,合并两个存储库也是如此微不足道且用户友好,即使使用命令行也是如此,而具有大量 GUI 工具的 ClearCase 是一个漫长而费力的过程,也极易出错.
所有的 GUI 工具都需要大量的延迟。即使查看可以对文件执行的操作也需要高速连接。因此,由于大量的网络需求,在具有高速互联网的情况下,在 ClearCase 工具中右键单击在家工作的文件可能需要一两分钟。
如果他们的视图规范与团队不同,有人可能会完全搞砸存储库或签入。这太疯狂了,没有人可以只检查某个分支;他们需要适当的视图规范,这会顺便给他们正确的东西。整个概念可以很好且灵活,但 99% 的时间它只会引起很多痛苦。我有没有提到你不能通过 Microsoft Outlook 发送你的规范,因为 CC 工具不接受 UTF-8,所以你不能复制粘贴它?
关于CC,我绝对没有什么好说的。我在 2 家公司使用了 2 年,并且在整个过程中都感觉很开心。在家中尝试自己的项目也是不可能的,因此您仍将在家学习 SVN 或 Git,并被迫在工作中经历 ClearCase 的痛苦。我认识的人都没有自愿使用过 CC。他们之所以使用它,是因为一些工作中的经理认为 CC 是通往救赎的道路,并迫使每个人都迁移到它。事实上,我上一家公司从 CVS 迁移到 ClearCase,一年后从 ClearCase 迁移到 SVN。就是那么讨厌。
ClearCase 不仅仅是让您拒绝的一件事。这就像住在一个蚂蚁出没的房子里。每只蚂蚁充其量只是轻微的不便,但出没会让你发疯。
我正在尝试将一些评论合并到此处的实际帖子中。我真的不是在这里说服你一个比另一个更好,除了提出几点:
ClearCase 是一个很好的工具,但它是一个复杂的工具工具。没有办法解决这个问题——它没有“轻松安装”模式。:-) 从技术的角度来看,git 或 SVN 没有什么是 ClearCase 做不到的(尽管术语通常不同,因为开源项目往往只是在已经存在的地方发明新的分类法),但有些事情肯定更容易/harder 对于给定的系统,取决于他们的设计。如果您从 SVN 或 CVS 签出存储库,ClearCase“快照”视图基本上是相同的 - 它是您机器上源代码的本地副本,带有指向中央服务器的指针,用于查询版本历史的工具,等等。一旦创建了这些视图,您就可以在没有任何网络连接到 ClearCase 服务器的情况下使用它们,并且您可以“回收” 例如,当您想转移到另一个分支上工作时,它们可以避免再次下载整个存储库。“动态视图”基本上是 ClearCase 的一项发明,也是 LAN 的标准操作模式。它们看起来与检出 SVN 存储库相同,但在您进行更改之前它们实际上不会复制任何文件。通过这种方式,视图立即可用,但如果主 clearcase 服务器不可用,显然无法使用它,并且在高延迟连接上使用它是不愉快的。它们还可以方便地作为网络驱动器安装在任何可以访问创建它们的服务器的机器上,因此如果您的 Windows 工作站死机,您只需登录另一个工作站,安装您的视图,然后获取回去工作,
此外,这值得拥有自己的段落...... clearmerge 几乎值得单独入场的价格。这是我一生中使用过的最好的合并工具。我坚信,由于缺乏高质量的合并工具,SCM 中的许多不良实践已经形成,因此 CVS 用户从未学会正确使用分支,并且这种对分支的恐惧已经蔓延到今天,没有什么特别好的理由。
好吧,说了这么多,如果您正在寻找不使用 ClearCase 的理由,那么并不难找到,尽管我认为这是错误的做法。确实,您应该想出使用 ClearCase 的充分理由,而不是不使用 ClearCase 的理由。您应该假设 ClearCase 是太多工具或太复杂的工具来完成任何 SCM 情况,然后看看您是否有一些情况鼓励您无论如何都要使用它。拥有 IBM 或 Rational 徽标不是一个好理由.. :-)
我什至不会考虑 ClearCase,除非您可以对以下所有陈述说“是”:
我的经验主要受到 CC、CVS 和 SVN 的限制。原则上,CC 具有技术能力、企业就绪,并且在功能上可与任何现代 VCS 相媲美。但它有几个缺陷,使其无法在任何以人为本的环境中使用。对于面向过程的环境,它可能更合适,尽管我怀疑这样的环境本身是否合适。也许,在军事、宇宙或医疗软件中,我不知道。无论如何,我相信即使对于这些领域,也有合适且更友好的工具。
除了技术能力强的 VCS 之外,CC 还具有几个独特的优势:
在我看来,除了最后一个之外,它们的使用是有限的;他们不弥补缺陷。动态视图在理论上很好,但在实践中并不总是可用。版本树在其他 VCS 中的使用要少得多,而在 CC 中是必要的,因为分支的扩散(参见 6)。据我所知,触发器非常详细且功能强大,但我认为对于大多数实际任务而言,SVN 挂钩已经足够好了。现在谈谈主要与可用性有关的缺点:
cleartool
(在 7.1 版之前),更不用说动态视图了。从外部看,ClearCase 似乎非常强大。但实际上,只是您需要用于基本工作流程的命令和选项的数量如此之多,以至于它们被隐藏在一些别名或脚本后面,并且您最终得到的东西不如 CVS 强大,但具有 Visual Source 的可用性安全的。每当你想做一些比你的脚本允许的更复杂的事情时,你都会感到恶心。
将其与 Git 进行比较,从外部看它似乎很复杂,但在使用它一周后,您会感觉完全掌控。存储库模型易于理解,并且非常强大。因为很容易掌握具体细节,所以在日常工作流程的表面下进行挖掘实际上很有趣。
例如,搞清楚一个琐碎的任务,例如如何在快照视图中查看文件的非 HEAD 版本,我花了几个小时,最终我得到了一个完整的 hack。也不是令人愉快的黑客攻击。
但是在 Git 中,搞清楚一个看似复杂的任务,比如如何交互地提交一些更改,(其余的留待以后处理)非常有趣,而且我一直觉得 VCS 允许我组织代码和历史以适合我的方式,而不是历史是我们如何使用 VCS 的意外。“Git 意味着永远不必说‘你应该拥有’”。
在我的工作中,我将 Git 用于各种轻量级任务,甚至在 ClearCase 中也是如此。例如,我做 TDD,每当一堆测试通过并且我即将重构时,我都会提交到 Git。当任务最终完成时,我签入 ClearCase,Git 帮助我准确地查看我正在更改的内容。只是尝试让 ClearCase 产生跨几个文件的差异 - 它不能!使用谷歌找出人们试图解决这个问题的各种黑客。这是版本控制应该开箱即用的事情,而且应该很容易!CVS 已经有几十年了!
在我看来?拥有它的唯一理由?如果您虔诚地遵循 RUP。
支持是可怕的。我们的门票已经开放多年了。我们的 eclipse 大师实际上在大约 30 分钟内通过反汇编 java 文件在本地修复了他们的 eclipse 插件中的一个错误。但这张票仍然没有超过一级支持。每隔一段时间,他们要么尝试偷偷关闭它,要么将其 ping 回给我们“尝试最新版本”(即使我们向他们发送了他们可以自己尝试的复制配方。)。
请勿触摸驳船杆。
表现。
ClearCase 功能强大、稳定(如果得到适当的维护和监督),但速度很慢。地质有时。
动态视图视图会导致可怕的构建时间,快照视图可能需要很长时间才能更新(大型项目的午休时间)或结帐(当天回家)。
开发人员将在做任何工作之前花费 1/2 的时间来弄清楚 clearcase,一旦他们弄清楚了,他们就会在本地安装 git,并且只根据需要推送到 clearcase 存储库。
您必须聘请专门的 Clearcase 管理员。
Clearcase 太烦人了,它实际上驱使人们为此写诗:
http://digital-compulsion.blogspot.com/2007/01/poetic-pathetic-version-control.html
http://grahamis.com/blog/2007/01/24/if-it-was-free-no-one-would-download-it/
I recently had to wrangle with a similar situation. Maybe you can learn from my story.
The team I was newly assigned to was using a heavyweight tool in an convoluted, error-prone manner. I first attempted to sell them on my tools and processes of choice. This attempt failed miserably. I was flabbergasted that they would pick such a burdensome environment over one that was both easier and more effective. Turns out that they wanted to be disciplined, and using a painful process felt disciplined to them. It sounds wierd, but it's true. They had a lot of other misconceptions too. After I figured out what they were after, we actually stuck with the same tool suite (Serena), but massively changed how it was configured.
My advice to you is to figure out what matters to your team. Ripping on ClearCase won't get you anywhere unless you speak to their interests. Also, find out why they don't want to use alternatives. Basically do a little requirements gathering and fit your tool choices to your needs. Depending on your options, who knows, Clear Case may end up being the best option after all.
我建议将 SVN 用于工具集,将 Git 用于扩展/工作流程。我还建议尽可能避免使用 CC。(不算钱,需要全职管理员才能使用如此痛苦的事实完全是个笑话)
我并不完全反对 ClearCase(它确实有它的优点),但要列出缺点:
如果您愿意在它之上使用另一个版本控制系统,ClearCase 是完全可用的!我个人发现在 CC 上使用 mercurial 可以很好地工作。
在过去的 4 年里,我们与 50 多名开发人员一起使用了与 ClearQuest(DR 跟踪/变更请求系统)集成的 UCM ClearCase。我们有超过 50 个 UCM 项目,超过 1000 个流处理超过 35K 的 DR 和变更请求。在此期间,我们正式进行了 600 多次集成交付,同时进行了多达 6 次并发开发和发布工作。
我是主要的 CM/ClearCase 人,有一个能够执行常规交付/合并和集成构建的备份。网络和服务器由 IT 团队提供支持。我只能说,在这项巨大的开发工作中,我们从 CM 方面几乎没有遇到任何问题,而且从来都不是表演的终结者。每当应项目管理人员的要求创建新项目(分支)时,我们的开发人员只接受了基本内容和简单步骤的培训。
太多的开发人员抱怨 ClearCase,因为他们缺乏适当的 CM/IT/ClearCase/Process/Management 支持。开发人员应该专注于开发而不是 SCM 或成为工具专家。对于大型软件开发,至少应将 5-7% 的预算用于 CM 和工具支持。
对我来说最大的缺点是性能(尤其是当您的 VOB 是多站点或异地时)和可能长时间的停机时间。
如果您像我一样,在一家相对较小的办公室作为大公司的一部分工作(没有现场 IT),Clearcase 服务器出现故障可能会使您在工作日的大部分时间都花在非工作效率上,同时也找不到合适的人把它修好。
最重要的是,仅当您确实需要它来完成您正在做的事情时才使用它,并确保您有足够的 IT 预算来维护它。
从 7.1 版的新版本开始,如果您喜欢的话,CC 会提供原子签入功能。就我个人而言,我真的不想要它,但显然有些人认为这是“一个基本特征”。我永远不会想要一个大批量作为一种大规模版本。再说一次......如果你想要它,只需打开它。
所以……不再争论。
在 Linux 中从 VOB 运行 JDK。
试试看,你需要使用 LD_PRELOAD 变量(我知道!)
“它需要一个专门的人”和“它很复杂”等等......
发现这个问题的核心问题是,您必须定义是否要在组织中执行配置管理(这不是版本管理)。配置管理就像项目管理:即使没有工具你仍然可以进行项目管理,没有工具你也可以进行配置管理。很多人很难理解这一点,很多人认为配置管理等同于一个对软件源或其他东西进行版本控制的工具......(因此与颠覆或其他版本管理系统进行比较)
ClearCase 是为在配置管理环境 ERGO 中使用而构建的解决方案:有一个配置管理器(就像“有一个项目管理器”一样)。
所以......如果你认为有专门的人来管理一个工具,我认为这是非常错误的。在我看来,有一个专门从事配置管理的人,从最终用户的角度来看,他只会在工具出现问题时出现,但认为这只是他工作的 1%。
因此,您需要做的事情(就像在任何其他软件项目中一样)回到您的需求,并根据您的组织对配置管理的需求,将需求列表放在一起。是的,就像在任何其他软件项目中一样,您会有用户(例如开发人员)在某些要求上完全不同意其他用户(例如管理)。我在这里读到的一些反应的关键在于恕我直言。
恕我直言,如果您有组织要求列表和混合配置管理器......选择非常明确(另请参见 www.cmcrossroads.com 上的论坛)
ClearCase 不仅是最终用户在 subversion 或 git 等版本控制下输入其源代码的工具。这只是配置管理器真正想要一个成熟的配置管理工具的 1%。
而且...我认为 CM 系统的选择永远不应该取决于开发人员,这等于选择正确的项目管理工具或正确的 CRM 系统。开发人员是该工具某部分功能的最终用户。
动态视图。必须欣赏一个功能齐全的半透明文件系统。
一大好处是知识产权始终在企业网络中。笔记本电脑可能会丢失/被盗,并且没有源代码处于危险之中。
另一个是即时访问源代码和更改的文件,无需花费时间下载任何内容。
它很好地满足了它的目的。
我可能会一个人在这里,但 ClearCase 并没有大家说的那么糟糕。它可以处理巨大的存储库。动态视图也是非常酷且强大的功能。它是可靠的,可以通过基于 pef 文件、权限等添加触发器和约束来进行自定义。
不幸的是,它是有代价的,很大的代价。它成本高昂,并且需要由专门的 IT 团队正确配置和维护才能正常运行。这对 BigCo 来说非常好,但对 SmallFirm 来说并不是那么明智的选择。
我是 DVCS 和 git 的忠实粉丝,但可以理解为什么 BigCo 会选择 ClearCase 而不是 SVN 和 Git。我不明白为什么有人会选择 SVN 而不是 Git ;>
行政。我不得不安排多天的停机时间来执行从 6 到 7 的升级,并将半大规模 (159GB) VOBS 从旧服务器移动到 SAN 存储。使用像 git 或 svn+svk 这样的系统,这可以在一夜之间完成,几乎是自动的,对用户没有影响——他们永远不会注意到。他们无法将更改推送到上游,但他们可以继续工作。使用 ClearCase 或原始 SVN,它们受存储库服务器的支配。
ClearCase UCM 是一个很棒的工具,我喜欢它,并且认为可以做一些事情来向 SVN/mercurial/git/bzr 添加类似的功能 - 并不是说你不能用钩子脚本来实现它,但这是一个定制的一次性每个站点。UCM 如此流行,每个人都这样做,但几乎没有人在存储库中跟踪它。:-/