以下代码是什么意思?

时间:2011-07-06 04:47:49

标签: version-control clearcase

element * CHECKEDOUT
element  /test_ari/karthik/...  ... /karthik_omna/LATEST
element  /test_ari/karthik/...  /main/2  -mkbranch karthik_omna
element *  /main/LATEST 

我已经写了上面的代码并且它工作正常。我很高兴。但是我想要清除你们的一些事情。这3个点在这个语法中意味着什么

 /test_ari/karthik/... 

,其他3个点意味着

 ... /karthik_omna/LATEST

最后一个问题,但它非常重要。为什么我们一开始总是使用* CHECKEDOUT?如果我们不使用它会发生什么?

1 个答案:

答案 0 :(得分:1)

/test_ari/karthik/... 

这意味着后面的选择规则(即.../karthik_omna/LATEST)将递归地应用于karthik目录以及所有子目录和文件。
如果选择路径为/test_ari/karthik/*(星号而不是三个点),则选择规则将应用于子目录和文件,但应用于karthik目录本身< / p>


.../karthik_omna/LATEST

这是一条选择规则,指示ClearCase选择分支karthik_omna的最新版本,而不必担心已创建其他分支karthik_omna
如果选择规则已经(例如)/main/karthik_omna/LATEST,则仅当所述分支在“{{1”之上创建时,它才会选择该分支LATEST版本}}”。
与之前的“main”相反,选择规则没有“...” (*不存在)


正如我在“How to create a branch”中所解释的那样,选择规则按顺序读取,第一个适合使ClearCase应用它(并忽略其他的)特定文件或目录。

这就是为什么你总能找到:

*/karthik_omna/LATEST

作为第一条规则,因为当您通知ClearCase您有意修改该文件时,它(文件)会获取一个名为element * CHECKEDOUT 的特殊版本,需要选择该版本以便您能够修改然后签入该文件。
如果该规则在下面太远,ClearCase可能会选择另一个版本,并且您将无法签入任何内容,因为您的视图中不会将该文件视为已签出。