Version control ClearCase的优点/缺点

Version control ClearCase的优点/缺点,version-control,clearcase,Version Control,Clearcase,因为我目前正在努力学习IBMRationalClearCase,我想听听您的专业意见 我对与其他版本控制系统(如Subversion或Git)相比的优势/劣势特别感兴趣。成本是一个相当明显的劣势。不仅是许可成本,还有ClearCase专家的工资成本。据我所知,几乎每一家使用ClearCase的公司似乎都至少有一个人,其唯一目的是驯服这只不守规矩的野兽 事实上,它非常复杂,需要一个全职保姆,这也令人担忧。在我的SO答案中,你可以找到ClearCase和Git之间的一个很好的比较: “”,说明了一些

因为我目前正在努力学习IBMRationalClearCase,我想听听您的专业意见


我对与其他版本控制系统(如Subversion或Git)相比的优势/劣势特别感兴趣。

成本是一个相当明显的劣势。不仅是许可成本,还有ClearCase专家的工资成本。据我所知,几乎每一家使用ClearCase的公司似乎都至少有一个人,其唯一目的是驯服这只不守规矩的野兽


事实上,它非常复杂,需要一个全职保姆,这也令人担忧。

在我的SO答案中,你可以找到ClearCase和Git之间的一个很好的比较:
“”,说明了一些主要区别(以及ClearCase的一些缺点)


以文件为中心的操作 ClearCase最重要的一个缺点是其旧的“以文件为中心的”方法(与SVN、Git或Perforce中的“以存储库为中心的”方法相反…
这意味着每个签出或签入都是按文件完成的。操作的原子性在文件级别。
再加上一个非常详细的协议和一个在开发人员工作站和VOB服务器之间可能有几个节点的网络,你就可以得到一个相当慢和低效的文件服务器(ClearCase是它的核心)

每个文件的文件操作意味着:慢速递归操作(如或,甚至通过
clearfsimport
)。
快速LAN对于减轻该聊天协议的副作用是强制性的

集中式风险投资 另一个需要考虑的方面是它的集中式方面(即使它可以通过其多站点复制VOB功能“分布式”)
如果网络不允许访问VOB,开发人员可以:

  • 仍在快照视图中工作(但仅限于被劫持的文件)
  • 如果使用动态视图,请等待网络恢复
昂贵的分布式VCS选项 通过复制Vob,您可以拥有一些分布式VCS功能。
但是:

  • 您需要一种特殊的许可证才能访问它
  • 该许可证非常昂贵,并且增加了常规许可证的成本
  • 任何使用复制vob(admin vob、admin pvob等)的vob也必须复制(这意味着一些与分布式开发没有直接关系的项目仍然需要支付多站点许可证…)
陈旧且不友好的GUI
  • GUI非常老派且不切实际(90年代中期的MFC外观,完全同步的GUI,这意味着您必须等待刷新后再单击其他位置):在浏览基线时,您无法快速查找特定的基线
  • Unix上的GUI与Windows上的GUI不完全相同(最新的7.1版本更好,但还没有)
  • 安装过程相当复杂(尽管CC7.1引入的最新安装管理器现在是Windows或Unix上的一致GUI,并且简化了安装过程)
  • 唯一真正的富应用程序仅为CCRC(远程客户端)开发
UCM不一致性和一致性 如“”中所述,动态视图非常好(这是一种通过网络查看数据而无需将数据复制到磁盘的方法),但其主要功能仍然是UCM:如果您有一个具有复杂工作流的大型项目,它可能是一项真正的资产

这方面的一些缺点:

  • 组件之间的依赖关系管理得不好,深度超过了一个(因为“”的错误)
  • UCM仍然存在一些一致性和不一致性
具有基本ClearCase的有限策略 使用ClearCase而不使用UCM意味着必须定义一个策略来:

  • 创建分支(否则任何人都可以创建任何分支,最终你会得到一大堆分支,合并工作流噩梦)
  • 放置标签(否则您会忘记为某些文件添加标签,或者将标签放置在不应该放置的位置,或者将标签从一个版本“移动”(gasp)到另一个版本:至少无法移动UCM基线)
  • 定义变更集。变更集仅与UCM活动一起存在。使用基本ClearCase,您将简化为聪明的“
    cleartool查找
    ”请求
无申请权 ClearCase权限管理完全建立在系统权限之上。
这意味着您需要将用户注册到正确的系统组,当您必须输入IT服务的票证以便他们进行正确注册时,这并不总是容易做到的。
再加上一个异构环境(Windows上的用户和Unix上的服务器),您需要在Unix和Windows上注册您的用户!(使用相同的登录名/组名)。除非在两个世界之间放置某种LDAP通信(如)

没有高级API
  • 只有CLI是完整的(“
    cleartool
    ”是ClearCase命令行界面),这意味着任何脚本(Perl或其他语言)都包含在解析这些
    cleartool
    命令的输出中)
  • 存在,但相当有限
  • Java API存在,但仅适用于CCRC客户端的web视图
查看不易集中/备份的存储 视图存储相当于SubVersion的“.svn”,只是每个视图只有一个“视图存储”,而不是SubVersion工作区所有目录中的许多.svn。那很好

糟糕的是,视图中的每个操作(简单的“
ls
”、签出、检查等)都会触发对管理视图服务器的视图服务器进程的网络请求。
2种选择:

  • 在工作站上声明视图存储:非常适合扩展性,您可以拥有任意多的视图