到目前为止,我一直在使用SVN,现在需要从开发人员的角度快速获取ClearCase。这有什么好的资源吗?感谢。
- 加上 -
SVN的概念/术语(即存储库,工作副本,主干,分支,标签,结账,提交,更新,还原)与CC之间是否存在映射?根据初读,我发现了以下内容。
存储库=> VOB?
工作副本=>快照视图?
Trunk => ??
分支=>整合流?发展流?
标签=>标签?基线?
从repo签出作为工作副本=>从VOB签出快照视图?
从工作副本提交到repo =>从快照视图登录到VOB?
更新=>变基?
Revert => ??
?? =>递送
AFAIK CC有自己独特的概念,因此我无法告诉最近的地图。
答案 0 :(得分:14)
你可以先阅读我的答案:
您需要注意的两个主要区别是:
ClearCase是以文件为中心的,而不是以存储库为中心的,这意味着您需要逐个签出才能修改的只读文件(并且您“提交” “(签入)一个接一个):这里没有全局工作空间修订
ClearCase将分支视为真正的元数据,而不是“目录”,其中包含一个廉价的副本:其中有一个非“目录”,其中包含分支的名称。< / p>
话说得很快:
存储库=&gt; VOB 强>:
是的:VOB只是repo的另一个术语(Versioned Object base)。它不是SQL数据库,而是旧的Atria平面文件库。
工作副本=&gt;快照视图?
快照视图是工作副本中最接近的访问机制,因为它会复制硬盘驱动器上的文件。
动态视图可以实现对工作副本的相同访问...无需在硬盘上复制任何内容,这对于快速查询非常有用。
Trunk =&gt; ?? 强>
“ main
”:这是ClearCase中的主要分支(ClearCase中的每个元素 - 文件或目录 - 在“main”上至少有一个版本),但实际上没有除了你选择作为主干的一个分支以外的主干。
分支=&gt;整合流?发展流?
流不是分支。它是一个元数据,包含您需要使用的标签(基线)列表。那时,只有你选择使用UCM。否则,分支是您可以在没有UCM(mkbranch myBranch
)的情况下创建的任何分支
流可以作为模式来创建以它命名的分支:您在UCM视图中进行的任何结账(在Stream之后自动配置的视图)将创建以其流命名的分支。
标签=&gt;标签?基线吗
首先,标签不是具有UCM等廉价副本的目录
它是应用于您需要引用的任何版本的标签
标签(非UCM)和基线(UCM)之间的区别在于基线是应用于(UCM)组件(文件组)的所有文件的标签,而标签可以应用于您选择的任何元素,例如仅作为给定文件组的子集。
从repo结帐为工作副本=&gt;从VOB签出快照视图?
几乎,但快照视图的正确术语是“更新”
对于动态视图,您甚至不需要更新(或svn checkout),因为视图是......动态的:您只需立即通过网络查看正确的工作副本。它只是另一种访问机制。
从工作副本提交到repo =&gt;从快照视图签入VOB?
不完全是,因为提交将涉及所有修改的文件,而签入将是逐个文件的(尽管ClearCase 7.1.1引入了"atomic checkin"的概念:see {{ 3}})。
更新=&gt;变基吗
Nope:表示在快照视图中更新(动态视图中没有任何内容,因为它是动态的:在具有相似选择规则的另一个视图中所做的任何更改将立即在您的视图中可见)
Rebase是一个UCM合并,它是从父流到子流的分支的分支。最后,它只是一个合并。
Revert =&gt; ?? 强>
不是微不足道的......这是 checkin man page 。
<强>? =&GT;递送强>
Deliver和Rebase只是分支“source”和分支“destination”之间的合并:
唯一的好处是你可以提前“看到”你的合并工作流程定义一个流的层次结构(这只是一个标签列表),知道之间的任何合并:
答案 1 :(得分:1)
您需要知道的主要事情是今天如何使用SVN,以明文形式称为snapshot views
。对于其余部分,clearcase具有负载和大量功能,如动态视图,活动,派生对象和自己的make系统。没有人在我工作的公司使用这些功能,这是全球选择clearcase。是的,如果您连接的服务器不在您的办公室,它就无法正常工作。
我见过的大多数透明材料都集中在所有这些其他功能上,因此,我会以一些健康的怀疑态度阅读它们。