1

我正在尝试在 ClearCase 远程客户端中分支文件。我已经设置了分支,并且更新了配置规范以处理分支。但我找不到选项,谷歌搜索也没有多大帮助。

4

2 回答 2

4

我理解您的问题的方式,听起来您想以某种方式从 Clearcase RC 菜单中选择一个命令并明确创建分支(?)

Clearcase 没有明确的“为此文件生成分支”命令;在这种情况下,您需要“结帐”命令。分支是间接的,并且是在视图中检出文件版本的结果,该视图具有带有“-mkbranch”操作的配置规范。即以下配置规范将在dev_1.0_branch我签出后创建(对于任何和所有 vobs 和文件):

element * CHECKEDOUT
element * .../dev_1.0_branch/LATEST
element * /main/LATEST -mkbranch dev_1.0_branch

第一行是您正在进行开发的视图的标准,第 2 行将确保我看到任何具有dev_1.0_branch(对于 checkout+mkbranch 按预期工作特别重要的文件:-),第 3 行将选择最新版本当(且仅当)该规则选择的文件版本被签出时,任何没有的文件dev_1.0_branch 都会创建分支。

请让我知道上述任何内容对您来说是否是希腊语,尤其是任何配置规范规则。与 ClearCase 合作了很长时间,我假设并使用了很多它的术语和概念,就好像它是常识一样:-P。

需要注意的一件事:如果您签出文件,然后立即取消签出文件,您将在该文件上留下一个空分支(即在上面您将有一个文件版本如:foo.c@@/main/ dev_1.0_branch/0,但没有 /main/ dev_1.0_branch/1 版本)。许多站点更喜欢保持版本树干净并删除空分支(可以在这篇 IBM Rational 技术文章中找到)

为了清楚起见,我熟悉 ClearCase Base 和 ClearCase MultiSite,但还没有使用 Remote Client。

--- 2009 年 6 月 29 日更新针对 Paul 在下面的评论,如果您想选择分支的文件,您可以将“*”修改为更具体。例如,如果您只想在 FOODEV VOB 中分支 foo.c,但将其他所有内容保留在 main 上:

UNIX 配置规范:

element * CHECKOUT 
element * .../my_dev_branch/LATEST
element /vobs/FOODEV/src/foo.c -mkbranch my_dev_branch 
element * /main/LATEST

(对于 Windows,您可能希望使用 Windows 约定。即 \FOODEV\src\foo.c)。

您还可以选择一个目录和该目录下的所有元素(同样是 UNIX 配置规范):

element * CHECKOUT
element * .../my_dev_branch/LATEST
element /vobs/FOODEV/src/mycomponent/... -mkbranch my_dev_branch
element * /main/LATEST

配置规范的主页_(来自 windows 或 unix 命令行的 cleartool man config_spec)在“模式”部分提供了关于如何编写元素/版本选择器(第 2 列)的体面指导。

您可以使用配置规范进行很多复杂的版本选择。如果您想了解更多细节或细节,请告诉我。

于 2009-06-18T18:51:01.387 回答
0

这是我用于修复特定错误的配置规范,更改了名称以掩盖一些有罪的。

element * CHECKEDOUT

element * .../TEMP.bugnum171238.jleffler/LATEST
mkbranch -override TEMP.bugnum171238.jleffler

include /clearcase/cspecs/project/version-1.23.45

为了创建分支,在每个 VOB 中,我使用了一个命令:

ct mkbrtype -c 'Branch for bug 171238' TEMP.bugnum171238.jleffler@/vobs/project

以前,我们使用配置规范和-mkbranch附加到各element行的规则。

于 2009-06-18T19:43:36.560 回答