【问题标题】:How to I completely delete a branch for a specific file in clearcase?如何在clearcase中完全删除特定文件的分支?
【发布时间】:2020-01-16 22:17:32
【问题描述】:

我有几个文件想在一些分支上使用,而不是在其他分支上。对于这些文件,clearcase 分支如下所示:

Dev ---> Dev/speical_branch_1
    ---> Dev/test_branch_1

我想完全删除这两个文件的测试分支,以便 clearcase 分支看起来像这样

Dev --> Dev/special_branch_1

我如何从存在中删除此分支仅针对这些文件

这与How to delete a clearcase branch with a single command? 不同,因为我想删除特定文件的分支。它也与Delete file from ClearCase checked out on another branch 不同,因为我不想直接删除文件,而只想从中删除某些分支。

【问题讨论】:

    标签: branch clearcase


    【解决方案1】:

    这将使用带有版本扩展路径名的cleartool rmver,或version selector(仅适用于基本 CC,不适用于 UCM)。

    想法是删除该分支文件的扩展路径版本

    cleartool rmver -force -version \main\Dev\test_branch_1\1 myFile
    

    (在 Unix 上使用 /,在 Windows 上使用 \)

    或者,更短:删除元素 myFile 的 test_branch_1 分支上 1 到 LATEST 之间的所有版本

    cleartool rmver -vrange  \main\Dev\test_branch_1\1  \main\Dev\test_branch_1\LATEST myFile
    

    这可能很危险,尤其是在 ClearCase UCM 中,每个版本都可能有与之关联的元数据(属性),这可能会破坏对象(如基线)。
    rmver is often blocked 在这种情况下。

    但在基本 ClearCase 中,如果您没有在这些版本上设置任何内容,并且不打算为该文件使用该分支......那应该可以。

    我在“Command to delete branches of Clearcase element with “0” versions”中提到了cleartool rmbranch -f file@@/main/aBranch'seen in Brian's answer)作为替代方法。

    【讨论】:

      【解决方案2】:

      @VonC。这个答案是不正确的。您不能删除分支上的 \0 版本。

      如果您要从文件中删除整个分支实例,并且这不是 UCM 环境,您可以使用:

      cleartool rmbranch myfile@@\main\branch
      

      如果是 UCM 环境,事情会变得更具挑战性,通常最好将它们留在那里并创建一个新的流。

      【讨论】:

      • 自 2013 年以来发生了哪些变化?我确实删除了 stackoverflow.com/a/18183902/6309 中的版本 0
      • 可能只有 /main/0 是完全不可删除的。但是 /0 版本非常重要。它们是各种子树的根。除非底层容器已损坏,否则我永远不会明确删除 /0 版本,然后我会改用 rmver -data 。 (或者让 checkvob 来做。
      • 好的,我明白了。对于版本 0 或任何版本,我确实尽可能避免使用 rmver。
      猜你喜欢
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      相关资源
      最近更新 更多