在工作中,我们现在正在使用ClearCase。但是,需要大量的开销,特别是当有人做了一些愚蠢的事情时(例如擦除在主干上有多个保留检出的视图......)。由于我们试图降低我们的开销并尽可能轻量级,我们已经考虑了抛弃CC和寻找更轻的东西(Subversion或Mercurial)的可能性,看看我们如何不使用CC的90%的功能无论如何。这听起来合理还是我们将法拉利换成旅行车?
答案 0 :(得分:28)
根据我的经验,ClearCase确实有很多开销,我们使用SVN进行了大量管理。
我投票,“降级”(实际上是升级版)。 ;)
答案 1 :(得分:18)
我学到的主要内容是,比产品更重要的是流程。
如果你使用SVN类型的模型实现了ClearCase(CC),那么SVN就可以正常工作并且很多更便宜。
另一方面,如果您使用延迟分支,按标签构建和动态视图(或可以),我们在节省时间和精力以及提高可靠性方面具有很大优势,您将会非常后悔失去这些特征。 (更不用说构建管理,UCM等)
我发现大多数人都使用第一选择,就像在高峰时段使用法拉利......
实施例? 定义标签GA,SP1,SP2(您可以根据需要在GA和SP1之间放置尽可能多的版本,不相关,并记住,CC标签与SVN不同)。 GA是你的基础版本, SP1是您当前的版本。 SP2是您的下一个版本。 当前版本基于GA和SP1。 下一个版本基于GA,SP1和SP2(参见CC配置规范)
开始QA。 开发正在为“下一个版本”进行持续的工作,用户可以参考(而不是更改)GA和SP1,并且可以应用SP2。 维护工作正在修复QA发现的缺陷,可以参考GA,并应用SP1。
案例1: 在ClearCase中,仅仅应用SP1标签的行为使得修复程序自动可供Dev SP2发布团队使用。没工作。 Nada,Zero。
在Subversion中,您将在QA分支上进行更改,然后(希望记住)将更改迁移到SP2。
案例2: 在您提出要求之前,当然,如果添加SP2更改,则必须进行分支以添加SP1的后续更改,就像在大多数系统中一样。
在我的世界中,现实世界的数字: 案例1发生了我最后一次SP的122次(每年8次SP)。 如果我使用Subversion模型,那么每年我不需要在ClearCase中进行800次以上的更改。
自2002年初安装CC以来,案例2已经发生了6次。
查看进程,而不仅仅是产品。
(对不起,它没有开始那么久: - )
答案 2 :(得分:6)
我同意之前的海报。放弃IBM产品并转向开源源代码控制产品将不会降级。使用这些更轻便,更易于使用的工具,您可能会更开心。在我们的商店,我们正在从CVS转向SVN,并对结果非常满意。
答案 3 :(得分:5)
我绝对会考虑从clearcase转向颠覆升级!
答案 4 :(得分:4)
我们从ClearCase LT转到SVN并喜欢它。我们节省了大量的维护费用现金,一切都和以前一样好。
我只是希望在推荐SVN之前我已经调查了Git或类似的东西。
答案 5 :(得分:3)
转换您切换的建议。如果您不使用这些功能,那么使用商业价格的解决方案是一个糟糕的商业选择。
现在,“免费”解决方案也存在相关成本。 SVN和Mercurial都不会为您提供商业级支持。如果这是一个问题,并且肯定可以在某些情况下,你可能不想这样做。
在您提到的两个中,如果您当前正在使用集中式VC存储库,则应该选择SVN。 SVN的操作模型不仅简单直观,而且SVN只是我在开源项目中见过的最好的文档和开发人员社区。用户邮件列表非常精彩,开发人员对他们的用户做出了响应和负责,Red Bean book是开源手册中最好的一部分。
答案 6 :(得分:3)
我的“开关”没问题。如果你没有很多使用UCM的相互依赖项目,那将是一次升级。
我管理SCM(ClearCase和Subversion)并建议Subversion用于中小型独立的项目。
但是,请确保您的开发人员不习惯ClearCase的动态视图:它是文件系统的封装,允许用户从网络访问文件。据我所知,ClearCase是唯一具有此类访问权限的人。
并考虑范式转换:
答案 7 :(得分:2)
我喜欢ClearCase的事情,我在其他SCM工具中无法做到或根本没有做过:
我不同意,维护ClearCase是一场噩梦,将花费你的钱。但是一旦设置好,它就可以提供一个非常好的开发环境。特别是当您开始与ClearQuest集成时(缺陷跟踪,我们也用于跟踪代码审查)。
正如另一位回应者所说,你的答案在很大程度上取决于你的过程需求。
答案 8 :(得分:2)
在我以前的公司(CMMi流程)中,大约100名开发人员/测试人员/集成人员使用ClearCase(CC)和3名全职管理员(增加2名自愿兼职)。 除非使用配置管理部分(基线),否则应继续使用现代SCM。基线功能非常强大:在传统的SCM中,当您更新/ rebase时,默认情况下会获得最新的修订。基线是某些“兼容”版本的软件组件集,以确保构建正常。在某种程度上,它就像依赖构建(即Maven,Ant Ivy)。当开发人员在基线上重新定义(更新)时,他们会获得应该“可构建”的内容。
现在回顾我的新公司(敏捷商店),我们使用SVN和Mercurial,我认为CC每天都很痛苦。使用CC处理项目(存储库),您可以创建视图,创建活动,然后签出文件。有些同事害怕做分支:)。 使用SVN和Mercurial,我们的GUI客户端没有这样的问题。开发人员每天承诺10次。与CC相比,人们每天都会登记一次。
确实,CC有很多开销,网络延迟慢,许可证成本高,需要全职管理员。那么除了配置管理之外还有什么好处呢。
在Mercurial上,工作流程更轻松。对于我们当前的项目,一个人通过提交非源文件搞砸了。 Hg历史是不可改变的。我们没有管理员。一位开发人员在半天内重新克隆了一个新项目。 在Clearcase中,您需要请专家来备份已删除的文件:)。要创建新的仓库,请询问您的管理员:)
离开ClearCase之后,现在我对SVN尤其是Mercurial非常满意。因此,从ClearCase转移到Mercurial将非常轻量级,并且您可以获得更高的生产力。
现在SVN和Mercurial之间的选择?您应该问自己是集中还是分散的存储库。您可以快速搜索stackoverflow。
我开始不喜欢IBM Rational产品,而选择优雅的开源解决方案。
如果您阅读并理解它,则应标题为“从clearcase升级为svn-mercurial”。
已添加: Clearcase落后于推荐能力阈值,而Mercurial,Subversion& Git显然是值得推荐的。
http://martinfowler.com/bliki/VersionControlTools.html
你也可以结合Mercurial& ClearCase的。阅读“多个VCS”段落
答案 9 :(得分:1)
过去几周我一直在寻找SCM(软件配置管理)和ALM(应用程序生命周期管理)工具,以取代CVS并支持Agile的采用。
如果您正在寻找能够支持并行开发和分支的真正SCM的东西,那么可能有更多的替代方案,而不是您意识到的。
对于简单的SCM解决方案,请查看以下内容:
所有这些解决方案都提供了更好的分支支持,而ClearCase具有本机支持的概念,例如开发人员沙箱(而不是在ClearCase中使用那些疯狂的视图)和verions快照。实际上是一个只读分支,有点像基线。
如果您有广泛的Rational部署,您可能希望研究这些替代方案:
上述所有解决方案都支持与Accurev等相同的SCM概念,但显然是更多的端到端产品,并且是企业规模。
此时我们已将选择范围缩小至MKS或Telelogic。
我最大的一点是,ClearCase和CVS / Subversion之间存在许多很多解决方案,这些解决方案是商业化的但又非常便宜。
希望这是有用的。
答案 10 :(得分:1)
我建议阅读HG Init - Joel Spolsky关于如何从SVN切换到Mercurial的指南。
正如之前的一些答案所提到的,SVN和ClearCase基本上都在相同的范例下工作,所以当你阅读这篇文章时,你几乎可以用“ClearCase”替换“Subversion”这个词,并将它应用到你的情境中
这是最终说服我开始在工作中使用Mercurial的写作。
答案 11 :(得分:0)
我很想知道你的分支结构是如何建立的。
为什么用户在您产品的“主干”上工作? (我认为这意味着你的主要分支)。开发分支是否会阻止您的开发人员影响主干?
为什么你不能在rmview脚本上引入一个触发器来防止用户在仍然有结账的情况下删除视图?这是一个非常简单的练习,网上有很多资源(如果你问的话,我相信StackOverflow会为你提供答案!)。
另一个建议是,如果你已经在IBM产品上投入了现金(因此愿意在商业支持的SCM环境上花钱),你可能想看看Team Concert和Jazz。
答案 12 :(得分:0)
听起来像你会对git / mercurial感到高兴,而且可能不会出现在SVN中。 OTOH,我所有的清晰经验都是乏味和不爱的,所以我认为任何“逃避”行动确实是一件非常好的事情。
分布式系统听起来更像是与您的工作流程相匹配。