2010-11-22 40 views
2


我对ClearCase知之甚少,想了解更多信息。
我在/main下创建了一个分支BR_PHASE2
我用以下命令将文件签入分支:ClearCase使用configspec分支

element * CHECKEDOUT 
element * .../BR_PHASE2/LATEST 
element * /main/LBL_MS_PHASE2_04-NOV-2010 -mkbranch BR_PHASE2 

现在的问题是如何从分支访问文件?
我不能连开VOB,如果我切换到这个配置规格:

element * CHECKEDOUT 
element * /main/BR_PHASE2/LATEST 

我写的配置规范错误?当我尝试设置如上配置规范时出现的错误:
警告:新的配置规范会使当前工作目录不可见。

实际访问我创建的分支的步骤是什么?

回答

0

您的第一个配置规范似乎没问题。实际上,您试图从标签'LBL_MS_PHASE2_04-NOV-2010'更改的所有文件都将被分支到BR_PHASE2。试试看结果,看版本树。

此外,第二个配置规范告诉查看所有属于该分支的文件,但如果您没有检出任何分支,那么您什么也看不到。

尝试以下操作:

element * CHECKEDOUT 
element * /main/LBL_MS_PHASE2_04-NOV-2010 
element * /main/BR_PHASE2/LATEST 

,让你有选择的标签和分支的文件的目录结构。

+0

我检出了标签'LBL_MS_PHASE2_04-NOV-2010'中的一些文件到分支BR_PHASE2。我得到了确认文件已成功检入分支。但是当我尝试将配置设置为: element * CHECKEDout element */main/BR_PHASE2/LATEST,我收到错误。此外,我无法打开我的VOB和任何文件夹结构在新创建的分支下。它说当我尝试访问它时找不到文件夹或目录,但'ls'列出了目录结构,并且所有文件夹似乎都存在。任何解决这个问题的方法? – Madan 2010-11-22 14:10:52

+0

在我看来,配置规范没有向你显示目录树,因为你只是没有看到你的配置规范。你应该纠正你的最后一个cs,看到更新的答案。 – 2010-11-22 14:22:50

+0

Thnx为最新的代码。似乎工作,但问题是我无法理解config规格如何选择哪个分支来检出文件,并且既然您已经从BR_PHASE2提供了main和latest的标签,那么目前可见的目录结构是来自main或从分支? – Madan 2010-11-22 15:00:08

4

的问题是:

实际上有什么目录:

  • 分支BR_PHASE2一个版本?
  • 标签为LBL_MS_PHASE2_04-NOV-2010的版本?

如果你只分支/标记/myVob/myDirectory下的所有文件,然后将目录/myVob本身不会永远不会被支/标记。

这意味着以下配置规范将无法选择任何版本/myVob,使所有的其他规则的任何文件/myVob无用下:
直到ClearCase是能够在真皮休闲选择的/myVob一个有效版本,它将无法为/myVob下的任何文件选择任何版本。

element * CHECKEDOUT 
element * /main/BR_PHASE2/LATEST 

你应该总是结束您的配置规格与 “配置停止规则”,如:

element * /main/LATEST 

或至少:

element /myVob /main/LATEST 

添加这些的一个在结束您的配置规范,并且该视图应按预期工作。


ClearCase的配置规范机制的组成为基础的一个:更多地了解它,请参阅SO回答“Flexible vs static branching (GIT vs Clearcase/Accurev)”。


的OP补充说:

你提到总是结束CS有:element * /main/LATEST

不一定:

如果你想确保只使用右分支/标签查看/ myVob/myDir下的文件,您可以使用上面提到的:

element /myVob /main/LATEST 

该规则仅适用于/myVob(不属于/myVob下的任何内容)。
这允许ClearCase通过/myVob(因为它至少可以为它选择一个有效版本)并开始将其他选择规则应用于子目录。

但如果我想检查出仅来自分支BR_PHASE2的文件,不会创建一个错误。我在说,当我用/ main/LATEST结束它并签出并签入文件时,它会在主分支中更新。我该怎么办呢?

这取决于你所使用的配置规格:

element * CHECKEDOUT 
element * /main/BR_PHASE2/LATEST 
element * /main/LATEST 

确实会在主枝

element * CHECKEDOUT 
element * .../BR_PHASE2/LATEST 
element * /main/LBL_MS_PHASE2_04-NOV-2010 -mkbranch BR_PHASE2 
element * /main/LATEST 

不会,因为第三规则将首先应用创造新的版本,如果元素已被标记为LBL_MS_PHASE2_04-NOV-2010

+0

你已经提到要始终使用:element */main/LATEST结束cs,但是如果我只想从分支BR_PHASE2中检出文件,则不会创建错误。我在说,当我用/ main/LATEST结束它并签出并检入文件时,它会在主分支中更新。我该怎么办呢? – Madan 2010-11-22 15:02:44

+0

@马丹:我已经在我的 - 更新 - 答案中解决了你的问题。 – VonC 2010-11-22 15:18:38

+0

非常感谢。将尝试此解决方案,并返回查询,如果有的话。 – Madan 2010-11-22 15:23:25

相关问题