我正在尝试在 ClearCase 远程客户端中分支文件。我已经设置了分支,并且更新了配置规范以处理分支。但我找不到选项,谷歌搜索也没有多大帮助。
2 回答
我理解您的问题的方式,听起来您想以某种方式从 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 列)的体面指导。
您可以使用配置规范进行很多复杂的版本选择。如果您想了解更多细节或细节,请告诉我。
这是我用于修复特定错误的配置规范,更改了名称以掩盖一些有罪的。
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
行的规则。