[英]How to checkout a branch in Clearcase?
我的整个开发生涯都在使用 git,最近刚刚被分配到一个过时的源代码库,不幸的是,它仍在使用 IBM Clearcase for Windows 进行版本控制。 我一直在努力掌握基础知识,主要是因为有很多东西与 git 没有明确的相似之处,而且由于几乎所有企业都不再使用 Clearcase,因此没有太多支持。
我的主要问题是我不知道如何结帐不同的分支。 我已经创建了一个 VOB 的快照视图(所以在 git 术语中,一个从远程克隆的本地存储库),我相信我在主分支上。 我在 Rational ClearCase Explorer 中查看它。 然后我打开“类型资源管理器”、select 我正在使用的 VOB 和 select“分支类型”。 从这里我可以看到每个已创建的分支。
假设我想查看分支“my_branch”。 在此 Clearcase 资源管理器中右键单击后,我没有从上下文菜单中看到任何适当的选择。 唯一的选项是“克隆”、“删除”、“重命名”和“属性”。 从 cleartool,我运行命令
find ./ -branch 'brtype(my_branch)' -print
它返回以下内容:
./\vob\path\to\changed\file\myFile.cpp@@\main\MYPROJECT\my_branch
这就是我想要的分支,我相信这个命令告诉我 my_branch 与我当前的分支相比已经改变了 myFile.cpp。 我想看看 my_branch 上的 myFile.cpp 与 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
它返回:
Checkout comments for "./\vob\path\to\changed\file\myFile.cpp":
并且无限期地挂起,并且永远不会签出该文件。
我到底做错了什么? 我如何查看我可以在本地视图中看到的这个分支? 任何帮助都是有价值和感激的,因为 Clearcase 是过去如此神秘的遗物。
注意:我在 2009 年的“每个开发人员应该知道的基本 clearcase 概念是什么? ”中记录了 Git 和 ClearCase 之间的主要区别。
您不会“结帐”分支。
您列出了一组带有版本选择器的配置 select 规则,例如:
element * CHECKEDOUT
element * .../mybranch/LATEST
element * /main/LATEST –mkbranch branch-type-name
这将 select myBranch
上的任何最新版本(除非所述版本正在修改,状态为“ CHECKEDOUT
”)。
或者,如果该特定元素(文件或文件夹)还没有myBranch
版本,则为 main 的最新版本(因为每个版本都以/main/0
开头)。
model 的问题在于分支路径:您需要记住从哪个分支开始myBranch
。
如果是来自/main
,上面的选择规则就足够了。
但如果它从another_branch
开始,那就是:
element * CHECKEDOUT
element * .../mybranch/LATEST
element * .../another_branch/LATEST -mkbranch mybranch
element * /main/LATEST -mkbranch mybranch
规则(用于动态或快照视图)从上到下读取:第一个适用的规则将是视图用于显示文件/文件夹的规则。
注意:您不能只签出一个文件。
您必须签出其父文件夹(和父/父...),以便所述文件夹显示正确的文件列表(然后您可以从中签出文件)。
这与 Git 非常不同,显然,它不关心文件夹,只关心内容(树内容或文件内容/blob)。
因此,您需要一组适用于 VOB 元素的规则,以便查看您的单个文件(因为该组规则将选择正确版本的父文件夹,以便您访问正确版本的文件) .
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.