在理性的清晰度中配置规范

时间:2011-07-05 05:58:48

标签: version-control clearcase

我对这些明确的案例工具非常了解。我正在学习,因为我有一个项目可以继续。 我刚学会了默认的配置规范是

element *CHECKEDOUT
element */main/LATEST 

所以新版本是在之前版本之后的main分支中创建的 但我一直在尝试这些,我只是将配置规范更改为这些

element *CHECKEDOUT
element */main/2

完成这些设置后,当我点击文件时会显示“file not found”:我无法办理登机手续或退房。
然后我改为默认配置规范再次工作。

什么错了?
另请告诉我这些如果version 4中我的最新版本为6,我该怎么去main在那里创建一个分支?

1 个答案:

答案 0 :(得分:1)

制定选择规则:

 element */main/2

您指示ClearCase仅向您显示......所有内容的“版本2”:

 /my/path/to/a/File

因此,如果“aFile”的任何父目录尚未包含“版本2”,您将无法访问aFile

如果之前的任何规则不起作用,您应该始终在配置规范的 end 中保留“/main/LATEST”选择规则, fall返回到一个通用规则(通用,因为任何元素至少有version 0存储在“main”分支中,除非'main'已重命名,这是非常糟糕)

例如:

 element * CHECKEDOUT
 element * /main/2
 element * /main/LATEST

会有效,如果有的话,会显示version 2所有内容,如果没有,则显示最新版本。

当您想要从某个点创建分支时,最好不要依赖版本号(因为您所谓的'版本4'仅对您的文件有效,而不是对您的目录有效)。
不要忘记文件和目录是以元素为基础进行版本化的:你是一个文件版本,然后是一个目录,然后是另一个文件......:它是以文件为中心的,不像其他VCS那样以存储库为中心(SVN,Git, Mercurial,...)所有仓库的原子提交和一个版本号:这里你有每个元素(文件或目录)的个人版本号。 /> 有关更多信息,请参阅“What are the basic ClearCase concepts every developer should know?

最好先设置一个标签,以便从那里进行分支。

但如果你没有标签,我的建议是:

  • 确定您的代码在您希望分支所在州的某个时间点
  • 制作time-based selection rule
  • 使用mkbranch指令完成该选择规则
  • 不要忘记您将在该分支上添加的新文件(即“/main/0”规则)

所以:

element * CHECKEDOUT
element * .../myBranch/LATEST
element * /main/LATEST -time dd-Month-yyyy -mkbranch myBranch
element * /main/0 -mkbranch myBranch
element * /main/LATEST 

将为dd-Month-yyy日期最多创建的任何元素创建一个新分支“myBranch”。