【问题标题】:how to remove a version in clearcase如何在 clearcase 中删除版本
【发布时间】:2013-10-24 04:51:40
【问题描述】:

我想检查一个目录,比如说/vobs/myvob/src/ 在这个目录中添加一个新文件。但是错误地而不是检查了/vobs/myvob/src,我检查了/vobs/myvob/scr/,甚至更糟糕地检查了它。然后目录scr 有一个新版本:scr@mybranch/1(假设我正在处理分支mybranch

意识到我犯了错误后,我删除了新创建的版本:

ct rmver scr@myranch/1

然后使用ct ls parent_dir_of_scr 进行仔细检查,我发现虽然scr@mybranch/1 消失了,但scr@mybranch/0 仍然存在。
不是 100% 确定,但恐怕我不应该尝试以相同的方式删除该版本,因为它可能会让 clearcase 也删除 main 中的版本。
所以我的问题是在这种情况下我应该如何做一个完全“清理”。

需要你的帮助。提前致谢。

【问题讨论】:

    标签: clearcase


    【解决方案1】:

    首先,正如How do I roll back a file checked in to Clearcase? 中所述,永远不要执行的命令是rmver
    即使在您的情况下它可能是合适的,但这也太危险了,因为它会删除版本及其所有相关元数据(超链接、标签等)。

    然后,你提到:

    我没有签出/vobs/myvob/src,而是签出了/vobs/myvob/scr/...

    .../vobs/myvob/src 与此处的/vobs/myvob/src 非常相似。我看不出“两个”目录之间有任何区别。

    如果您想通过 CLI cleartool 将文件添加到目录中,您需要:

    • 结帐/vobs/myvob/src(父目录)
    • mkelem要添加的文件
    • 签入父目录

    最后,您看到的“版本 0”只是作为分支起点的“声明性”版本。
    这就是为什么其他答案建议您为该元素使用rmbranch(删除分支)。它仅用于清理 lsvtree(版本树)。

    "cleartool rmbranch -force $element"
    

    ten best scripts中所述。

    【讨论】:

    • @Jerry 从 ClearCase Explorer 完成的版本树开始。这将为您提供给定元素的所有版本。
    • 谢谢。但我只能访问 CLI。
    • @Jerry Then cleartool lsvtree aFile 是查看相同内容的 CLI 方式。
    【解决方案2】:

    即使您删除了分支上文件的版本 1,您的分支仍将保留(使用版本 0)。如果您真的想要进行清理,您可以删除文件的分支 (ct rmbranch your_branch) - 它不会从主线中删除版本。

    【讨论】:

      【解决方案3】:

      如果您想从 Clearcase 控件中完全删除对象(文件或目录)的某个版本,我建议您使用以下命令:

      cleartool rmver –xbranch –xlabel –xattr –xhlink test.txt@@\main\3
      

      this snip2code post 上描述了命令选项。

      【讨论】:

        猜你喜欢
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多