如果Clearcase中已存在某个元素,或者我仍需要添加它,我想查看批处理文件。
我如何将其纳入条件陈述?
像:
if cleartool exists myFileName do myaction
else doOtherAction
答案 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开关。