清除Clearcase中的文件夹

7

我有一个如下所示的目录结构:

root_dir
  dir1
  dir2
    file1.txt
    file2.txt
    sub_dir
      file3.txt
      file4.txt

如何使用rmname删除dir2及其所有子元素?我可以简单地执行'cleartool rmname dir2'并递归删除其所有内容吗?

请注意,此命令将永久删除所选目录及其所有子目录和文件。请谨慎操作,并确保您已备份了重要数据。
1个回答

6

你只需要:

cleartool checkout -nc root_dir
cleartool rmname dir2
cleartool checkin root_dir

在新版本的root_dir中删除对dir2的引用,使得dir2及其所有内容不可见(无法访问)。
您可以通过将之前仍然引用dir2root_dir的版本与当前版本(其中您使用了rmname删除了dir2)合并,以重新创建一个新版本来恢复dir2及其所有内容。

注意:使用rmname时,您可能会收到错误消息,提到该元素已被签出,即使它在您进行rmname的分支中没有被签出。
使用rmname -force是执行rmname的解决方案:请参见this technote


2
这并不会从底层的ClearCase数据库中删除整个结构,这既是好事也是坏事。也就是说,您可以检出rmname之前的版本并将其全部恢复。这并不完全等同于递归删除,但可能是您想要的。 - hawkeye
此解决方案未从VOB中删除所有元素,这会对VOB容量造成负担。建议您自行删除所有元素。 - TripleS
@TripleS 你是不是指的是 rmelem 而不是 rmname,以完全删除该元素及其所有历史记录? - VonC
不,我建议删除所有元素而不仅仅是删除父目录,使用rmelem命令来删除每个元素。 - TripleS
我是指rmname,删除符号链接。 - TripleS
显示剩余3条评论

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