使用clearcase远程客户端进行分支

时间:2009-06-11 17:18:36

标签: branch clearcase-remote-client

我正在尝试在ClearCase Remote Client中分支文件。 我已设置分支,并更新配置规范以处理分支。 但我找不到这个选项,谷歌搜索没有多大帮助。

2 个答案:

答案 0 :(得分:4)

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

Clearcase没有明确的“为此文件生成分支”命令;在这种情况下,你会想要“Checkout”命令。分支是间接的,是在视图中检出文件版本的结果,该视图具有包含“-mkbranch”操作的配置规范。即一旦我检查出来(对于任何和所有的vobs和文件),以下配置规范将创建dev_1.0_branch

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版本)。许多网站更喜欢保持版本树清洁并删除空分支(可以在this IBM Rational Technical article中找到一个)

为了清楚起见,我熟悉ClearCase Base& ClearCase MultiSite,但尚未使用Remote Client。

--- 2009年6月29日更新 回应下面保罗的评论,如果你想选择哪些文件是分支的,你可以修改“*”更具体。例如,如果您只想在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

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

您可以使用配置规范进行大量复杂的版本选择。如果您想了解更多详情或具体信息,请与我们联系。

答案 1 :(得分: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行。