如何在ClearCase中删除一个版本

6

我想要检出一个目录,比如说/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在主干中删除一个版本。
所以我的问题是,在这种情况下,我应该如何进行完全的“清理”操作。

需要您的帮助。先感谢您了。

3个回答

8
首先,正如在如何回退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"

如在十个最佳脚本中所述。


@Jerry 从ClearCase Explorer开始使用版本树。这将为您提供给定元素的所有版本。 - VonC
谢谢。但我只能访问CLI。 - xxks-kkk
@Jerry,然后cleartool lsvtree aFile是查看相同内容的CLI方式。 - VonC

4
即使你在分支上删除了文件的版本1,你的分支仍然存在(版本0)。如果您真的想要进行清理,可以删除分支(ct rmbranch your_branch)中的文件,但这不会从主线中删除该版本。

1
如果您想完全从Clearcase控制中删除一个对象(文件或目录),我建议您使用以下命令:
cleartool rmver –xbranch –xlabel –xattr –xhlink test.txt@@\main\3

命令选项在此snip2code帖子中有描述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接