我想查看一个目录,让我们说/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删除主版本中的版本。
所以我的问题是在这种情况下我应该如何完全“清理”。
需要你的帮助。提前谢谢。
答案 0 :(得分:6)
首先,如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中所述。
答案 1 :(得分:4)
即使您删除了分支上的文件版本1,您的分支仍将保留(版本0)。如果您真的想要进行清理,可以删除该文件的分支(ct rmbranch your_branch) - 它不会从主线中删除该版本。
答案 2 :(得分:1)
如果要从Clearcase控件中完全删除对象(文件或目录)的版本,建议您使用以下命令:
cleartool rmver –xbranch –xlabel –xattr –xhlink test.txt@@\main\3
this snip2code post上描述了命令选项。