Friday, March 4, 2011

Clearcase Multi-file rename

I have a large number of files in a ClearCase directory structure, and I need to go through and change all "makefile" to "Makefile". I'm thinking some combination of the find . -name makefile command with an exec flag, but I'm having a hard time coming up with the exec command. The cleartool mv command does not automatically check out the directory, so I need to check that out and then do the mv. But as far as I can tell, the only thing I have to work with is the %CLEARCASE_PN% symbol, which gives me the full pathname. So I need to parse the directory out from that. I'm hoping someone who's better with the shell than me can come up with the right command quicker than I can puzzle it out.

I have cleartool, Windows cmd, and Cygwin to work with here.

From stackoverflow
  • I guess that you have bash in your cygwin environment. If you do you can write a small bash script using this answer to a previous question into something as:

    #!/bin/bash
    FILE=$1
    DIR_NAME=$( dirname $FILE )
    FILE_NAME=$( basename $FILE )
    
    #checkout directory $DIR_NAME with whatever the cleartool command is
    #rename with cleartool $DIR_NAME/$FILE to $DIR_NAME/new_name
    
    /usr/atria/bin/cleartool checkout -nc $DIR_NAME; 
    /usr/atria/bin/cleartool mv $DIR_NAME/$FILE_NAME $DIR_NAME/Makefile;
    

    Then call the script with:

    find . -name orig_name -exec myscript.sh {} \;
    

    Warnings:

    • a directory already checked-out will trigger an error message when checked-out again (can be ignored)
    • you will have to check-in all the directories checked-out during this process, otherwise nobody will see the result of the move (except the ones accessing this current view)
    mbyrne215 : Perfect! In case anyone's wondering, the cleartool commands are: cleartool checkout -nc $DIR_NAME; cleartool mv $DIR_NAME/$FILE_NAME $DIR_NAME/Makefile;
    David Rodríguez - dribeas : Anyone knows how to edit this answer to add the cleartool commands into the sample code above? In other posts I have an edit option, but not here. Maybe because it is accepted as the answer?
    VonC : cleartool commands added to your answer. Let me know if you want me to edit anything else.
    David Rodríguez - dribeas : Thanks, I just wanted to add the feedback from the original post so it would be easier on future readers. Thanks a log.

0 comments:

Post a Comment