我可以在没有触发器的情况下删除 ClearCase 分支上文件的版本 0 吗?

Can I remove version-0 of a file on a ClearCase branch without a trigger?

假设我在 ClearCase 视图上检出了一个文件 foo,这触发了该文件的一个分支名称为 my_branch 的版本的创建 - 该文件的第一个版本具有该分支名称。现在我已经取消签出该文件 - 但它的版本 0 与该分支名称仍然存在。我怎样才能删除它?我知道有一些方法可以使用“触发器”来完成(我对那些不太熟悉);我可以用一些命令手动删除它吗?

注意:my_branch上面有其他文件的版本;它不应该被完全删除。

手动删除单个版本 0 文件

对于单个文件,按照 OP 中的要求:

(危险的)命令是 cleartool rmver

cleartool rmver util.c@@/main/my_branch/0

这将是手动方法,假设 my_branch 是从 main 创建的。

As illustrated here,为了版本 不要留下任何悬挂元素(分支、标签、超链接或属性元数据),您需要:

cleartool rmver –xbranch –xlabel –xattr –xhlink util.c@@/main/my_branch/0

(假设版本 0 是该分支上的唯一版本)

手动删除分支上的所有文件

正如我在“how to remove a version in ClearCase", if you have inadvertently created some version-0's on a branch, the better way to remove them - all of them - is to use cleartool rmbranch:

"cleartool rmbranch -force $myBranch"

你可以在“Command to delete branches of Clearcase element with “0” versions”中看到它的使用。
但这确实适用于所有分支。不适用于单个文件。

自动删除

自动方法通过 mktrtype 实现,如 I documented here
作为脚本,您可以使用:

确实使用了触发器:我在这里提到它只是为了完整起见,尽管这不是您的首选方法。
对于偶尔的清理,rmver 一个单独的 0 版本就足够了。
(对于任何其他情况,因为 discussed herermver 是危险的)