Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 源代码控制的ClearCase?_Svn_Version Control_Clearcase - Fatal编程技术网

Svn 源代码控制的ClearCase?

Svn 源代码控制的ClearCase?,svn,version-control,clearcase,Svn,Version Control,Clearcase,我从未使用过ClearCase,但在很短的一段时间内使用过Subversion和Performce。我们公司的IT部门正式支持ClearCase,有些人在其中检查代码,有些人将其用作备份存储 我还没有决定是否使用ClearCase本身或使用Subversion设置自己的存储库。它将是一个两人或最多三人的开发团队。从我所听到的人那里,我得到了这样的看法:ClearCase是复杂的,不值得学习,因为它可能不会提高生产率。这是真的还是错的 谢谢…我会选择subversion。它有一个更干净的界面,比C

我从未使用过ClearCase,但在很短的一段时间内使用过Subversion和Performce。我们公司的IT部门正式支持ClearCase,有些人在其中检查代码,有些人将其用作备份存储

我还没有决定是否使用ClearCase本身或使用Subversion设置自己的存储库。它将是一个两人或最多三人的开发团队。从我所听到的人那里,我得到了这样的看法:ClearCase是复杂的,不值得学习,因为它可能不会提高生产率。这是真的还是错的


谢谢…

我会选择subversion。它有一个更干净的界面,比ClearCase更直观。在我的公司里,人们常常难以学习ClearCase,团队正在迁移到svn。使用svn的另一个好理由是它是免费的,远离它!它有一些svn缺少的功能(比如活动),但肯定有3个人在你的团队中是不值得的。

2011年11月更新:一年多之后,我真的建议不要使用ClearCase

现在很清楚,自(2003年)以来,25年以上的老产品不会有任何重大改进。
最新的功能可能仍会有所改进(请参阅),并最终成为产品的一部分,但客户端和服务器之间的底层通信协议仍然很慢,无法扩展

实际上,ClearCase已经从头重写,并被称为产品的一部分。
这个新版本(RTC 3.x)实际上相当不错,比ClearCase快得多,并且提供了一种隔离开发的有趣方式,允许私有提交

今天,像Git这样的DVC也是一个很好的选择,但对于大型企业来说,这并不是一个简单的过程


初步答复:2010年8月:

ClearCase并不复杂,但它与SVN有很大的不同。而且相当慢;)

我已经设法在快照视图中创建了

对于具有复杂合并工作流的大型项目,ClearCase(尤其是ClearCase UCM)是值得的。
对于更简单的项目(就合并工作流而言),SVN就足够了

另见:


假设您仅限于您提到的两个版本控制系统(VCS),Subversion(SVN)将在几乎所有方面都得到更清晰、更容易和更好的支持,直到您必须支持多个分支为止

当您需要将代码(例如bug修复)合并到多个版本中时,支持并行开发任何规模较大的功能,或由比ClearCase稍大的开发团队进行开发,更具体地说,支持在分支中开发并轻松将它们合并在一起的能力,将变得值得所有额外的痛苦和并发症-特别是如果ClearCase已经在为您管理

体验

我在一个人(我)到400多人之间使用过ClearCase,它有许多日常烦恼、可用性问题和故障,但它始终允许我们一起完成工作。ClearCase安装在任何时候都有专门的全职管理员

我自己和另一个人使用过Subversion,它在日常工作中效果很好(除了我之外没有管理员),但它偶尔会成为一个重要的挫折源,因为它无法处理任何重要的分支和合并情况

为什么SVN在支持并行开发和分支方面很差?

SVN无法支持并行开发线,因为它对合并分支的自动化支持非常弱。相比之下,我在这里写的所有其他VCS都对合并分支有很好的支持;对于常见情况,这是一种零努力操作

分支是版本控制系统在人类生活中模拟并发的方式(例如,两个开发人员并行处理两个不同的问题,或者一个开发人员同时打开多个问题)。但是,如果你不能很容易地将每个人的工作组合成一个连贯的整体,那么分支是无用的

分支可以显式发生(由VCS命名和理解),也可以隐式发生(作为文件的普通副本或签出)。SVN支持两者,但在SVN中,分支通常以隐式的有限方式完成。每次签出都是一个分支,但每次提交/更新时都会强制同步所有分支。这是因为SVN不支持显式分支的轻松合并,因此很少创建显式分支

由于您必须在每次提交时彼此同步,这会降低团队中潜在的并行性。它还导致一些不太理想的开发实践,因为您无法有效地使用版本控制系统满足自己的日常开发需求。在您自己的个人分支中尝试不同的想法太难了,并且您无法在细化功能时进行多次提交。你也更可能过早地做出承诺,并最终打断其他人的工作,直到你在上一次承诺中解决了问题

另一个主要问题是,由于不太支持合并显式分支,SVN在帮助您在人员之间和分支之间移动代码更改方面做得很差。想象一下,试图修复发布分支和开发分支中的一个bug;或者,设想两个开发人员正在开发一个相关的功能,他们都需要彼此进行更改,但只能在控制点进行更改。使用SVN,您可以完成这些任务,但VCS对您的帮助微乎其微,您必须准备好手动准备和维护修补程序或分发文件

在其他VCS中,您可以要求VCS将包含错误修复或功能的分支合并到各种其他分支中。最后