Clearcase Delete Directory

16,119

You only need to:

cleartool checkout -nc root_dir
cleartool rmname dir2
cleartool checkin root_dir

That remove the reference to dir2 in the new version of root_dir, making dir2 and all its content invisible (not reachable).
And you can easily restore dir2 (and all its content) by merging the previous version of root_dir (which was still referencing dir2) with the current version (the one where you rmname'd dir2) in order to recreate a new version where you get back dir2.

Note: when using rmname, you might have an error message mentioning that the element is in checked out, even though it is not checked out in the branch where you are doing the rmname.
using rmname -force is the solution to still perform the rmname: see this technote.

Share:
16,119
Ken Hirakawa
Author by

Ken Hirakawa

Software Engineer

Updated on June 04, 2022

Comments

  • Ken Hirakawa
    Ken Hirakawa almost 2 years

    I have a directory structure like so:

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

    What is the best way to delete dir2 and all it's sub-elements using rmname? Can I simply do 'cleartool rmname dir2' and have it recursively delete all it's contents?

  • user1544101
    user1544101 almost 13 years
    That doesn't remove the entire structure from the underlying clearcase database - which is a good and bad thing. ie you can check out the version prior to the rmname and get it all back. Not quite the same as a recursive delete - but probably what you wanted.
  • VonC
    VonC almost 13 years
    @hawkeye: "but probably what you want": in my experience, this is usually enough. No need to go deeper than that.
  • TripleS
    TripleS about 7 years
    This solution doesn't remove all elements from the VOB, which is a burden on VOB capacity. I suggest you'd delete all the elements by yourself
  • VonC
    VonC about 7 years
    @TripleS do you mean rmelem instead of rmname, to completely remove the element and all its history?
  • TripleS
    TripleS about 7 years
    No , I suggest to delete all elements instead of merely delete the father directory, use rmelem for each element
  • VonC
    VonC about 7 years
    @TripleS so you do mean rmelem: that can be quite dangerous: stackoverflow.com/a/4941527/6309
  • TripleS
    TripleS about 7 years
    I mean rmname, remove symbolic links
  • VonC
    VonC about 7 years
    OK. You said "use rmelem for each element", hence my previous comment.