如何在 Clearcase 中检查一个分支?

How to checkout a branch in Clearcase?

我一直在使用 git 我的整个开发生命,并且最近被分配到一个过时的源代码库,不幸的是它仍在使用 IBM Clearcase for Windows 进行版本控制。我一直在努力掌握基础知识,主要是因为有很多东西没有明确类似于 git,而且对 Clearcase 的支持不多,因为几乎每个企业都不再使用它。

我的主要问题是我不知道如何结账到不同的分支。我已经创建了一个 VOB 的快照视图(所以在 git 术语中,从远程克隆的本地回购协议),我相信我在 master 分支上。我正在 Rational ClearCase Explorer 中查看它。然后我打开“类型资源管理器”,select 我正在使用的 VOB,以及 select“分支类型”。从这里我可以看到已创建的每个分支。

假设我想查看分支“my_branch”。在此 Clearcase 资源管理器中右键单击时,我没有从上下文菜单中看到任何合适的 selection。唯一的选项是“克隆”、“删除”、“重命名”和“属性”。从 cleartool,我 运行 命令

find ./ -branch 'brtype(my_branch)' -print

它 returns 以下内容:

./\vob\path\to\changed\file\myFile.cpp@@\main\MYPROJECT\my_branch

那是我想要的分支,我相信这个命令告诉我的是 my_branch 与我当前的分支相比已经改变 myFile.cpp。我想看看 myFile.cpp 在 my_branch 上与 master 有何不同。现在,如果这是 git,我想检查那个分支。但是,几乎我使用结帐所做的一切都不起作用。

在 Cleartool 中,我尝试:

checkout -branch \main\MYPROJECT\my_branch

我回来了:

cleartool: Error: Element pathname required.

我会认为 \main\MYPROJECT\ 是路径名。所以我试着看看如果我只检查一个文件会发生什么:

checkout -unreserved ./\vob\path\to\changed\file\myFile.cpp@@\main\MYPROJECT\my_branch

它returns:

Checkout comments for "./\vob\path\to\changed\file\myFile.cpp":

并无限期挂起,永远不会检出该文件。

我到底做错了什么?我到底该如何检查我可以在本地视图中看到的这个分支?任何帮助都是有价值和感激的,因为 Clearcase 如今已成为过去的神秘遗迹。

注意:我在 2009 年的“What are the basic clearcase concepts every developer should know?”中记录了 Git 和 ClearCase 之间的主要区别。

您没有“签出”分支。
您列出了一组 config select rules 版本为 select 或,例如:

element * CHECKEDOUT
element * .../mybranch/LATEST 
element * /main/LATEST –mkbranch branch-type-name

这将 select myBranch 上的任何最新版本(除非所述版本正在修改,状态为“CHECKEDOUT”)。
或者,如果该特定元素(文件或文件夹)还没有 myBranch 版本,则为 main 的最新版本(自 every version starts with /main/0)。

那个模型的问题在分支路径:你需要记住你从哪个分支开始myBranch
如果是来自/main,上面的selection规则就够了。
但是如果它从 another_branch 开始,那就是:

element * CHECKEDOUT
element * .../mybranch/LATEST 
element * .../another_branch/LATEST -mkbranch mybranch
element * /main/LATEST -mkbranch mybranch

规则(用于动态或快照视图)从上到下阅读:第一个适用的将是视图用来显示 file/folder。

注意:您不能只签出一个文件。
您必须检出其父文件夹(和 parent/parent...),以便该文件夹显示正确的文件 list(然后您可以从中检出文件)。

这与Git很不一样,显然,后者不关心文件夹,只关心内容(树内容或文件content/blob)。

因此您需要一组适用于 VOB 元素的规则,以便查看您的单个文件(因为该组规则将 selected parent 个文件夹,供您访问文件的正确版本)。