【问题标题】:Clearcase Element existenceClearcase 元素存在
【发布时间】:2015-06-08 12:00:17
【问题描述】:

我想用批处理文件检查 Clearcase 中是否已经存在某个元素,或者我是否仍需要添加它。

如何将其放入条件语句中?

喜欢:

if cleartool exists myFileName do myaction
else doOtherAction

【问题讨论】:

    标签: clearcase


    【解决方案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:如何检查一个元素在我从主干分支后创建的主干上是否有一个版本?”

    【讨论】:

    • 我的问题不是我不知道如何检查这个。我只是不知道如何以某种方式构建我的 if else 语句
    • @ZerO 你首先需要构建一个函数,给定文件名,它将返回真或假。然后,您可以从您的 if else 语句中调用该函数。
    • 当然可以,但是哪个函数会返回 true 或 false? find 或 describe 不返回 true 或 false 值,这是我的问题
    • @ZerO you 将编写的函数,它将确定是否添加文件,使用我描述的一种方法:cleartool ls -l myFile|grep private 是一个好的开始。这些命令不返回 true 或 false 并不重要:重要的是当元素在或不在源代码管理中时它们返回不同的东西,这允许您的函数在第一种情况下返回 true,在后者。
    【解决方案2】:

    以下 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
    

    您可能想要添加合适的 cmets 而不是使用 -nc 开关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多