微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Clearcase 中结帐分支?

如何解决如何在 Clearcase 中结帐分支?

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

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

假设我想查看分支“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。我想看看 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

它返回:

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,例如:

update

这将选择 element * CHECKEDOUT element * .../mybranch/LATEST element * /main/LATEST –mkbranch branch-type-name 上的任何最新版本(除非所述版本正在被修改,状态为“myBranch”)。
或者,如果该特定元素(文件或文件夹)还没有 CHECKEDOUT 版本,则为 main 的最新版本(自 every version starts with /main/0 起)。

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

another_branch

从上到下读取规则(对于动态或快照视图):第一个适用的规则将是视图用于显示文件/文件夹的规则。

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

这显然与 Git 非常不同,它不关心文件夹,只关心内容(树内容或文件内容/blob)。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?