Clearcase Element存在

时间:2014-08-04 11:39:24

标签: clearcase

如果Clearcase中已存在某个元素,或者我仍需要添加它,我想查看批处理文件。

我如何将其纳入条件陈述?

像:

if cleartool exists myFileName do myaction
else doOtherAction

2 个答案:

答案 0 :(得分:1)

您需要构建一个返回true或false的函数,具体取决于元素全名是否为ClearCase视图元素的一部分。
然后,您可以从if... else...声明中调用该函数。

以下是您的函数可以使用的各种命令,以确定文件是否为ClearCase元素(意味着已添加到源代码管理中):


您可以先使用cleartool ls -l的结果:如果其输出包含view-private object,则尚未将其添加到源代码管理中。

cmd-context ls -long
version               Makefile@@\main\3      Rule: element * \main\LATEST
view private object   bug.report
version               cm_add.c@@\main\0      Rule: element * \main\LATEST
derived object (unshared)   hello@@2007-03-24T11:32.418
version               hello.h@@\main\CHECKEDOUT from \main\2  
                                              Rule: element * CHECKEDOUT

此处' bug.report'还没有添加。
详情请见" About view-private objects"。
我已经使用C#推荐了上一个问题的方法:" c# How to determine if a file is in ClearCase?"。


另一种方法是使用cleartool describe,如果描述的元素是私有元素,则会触发错误。


正如technote "How to list view-private files in a view in Rational ClearCase"中所述,命令cleartool lsprivate仅适用于动态视图,而不适用于快照视图。
对于快照视图,您可以使用:cleartool ls -r -view_only


另一种方法是使用cleartool find,如" Clearcase:如何检查一个元素是否在我从主干分支后创建的主干上有版本?"

答案 1 :(得分:0)

以下DOS批处理文件如果尚未存在,则会将文件添加到ClearCase。适用于动态视图和快照视图。

@ECHO OFF
cleartool ls -l %1 | FIND "view private object"
IF %ERRORLEVEL% == 1 GOTO END
cleartool co -nc .
cleartool mkelem -nc -ci %1
cleartool ci -nc .
:END

您可能希望添加合适的注释,而不是使用-nc开关。