[Looks like unlink_file_dir should be calling CVS_LSTAT not CVS_STAT (two calls, stat call in unlink_file_dir and isdir call in deep_remove_dir). -kingdon] Date: Wed, 16 Sep 1998 09:33:34 +0200 From: Joerg Faschingbauer To: info-cvs@gnu.org Subject: cvs release -d and symbolic links Hi, I am relatively new to cvs, so I haven't a grasp if this is a desired behavior or not (probably not). I am using cvs 1.9, any architecture. During the build process in my working copy symbolic links are created with the purpose to have the compiled object files reside on a local disk, where the working copy's file system is NFS mounted. (Anyway.) When the time comes to release my copy I use cvs release -d to have it rm -r my tree. During the recursion, when it gets to unlink the link, a stat() is done in isdir(), stating that it is a directory (which is where the link points to). Ok, the directory where the link points to is rm -r'd, but the link itself remains in the directory. When this recursion level is left, the directory is considered empty, rmdir() is called, and the error EEXIST is reported. I think this is not the desired behavior, but I'm not sure what is desired. - should the directory where the link points to be removed, and, afterwards, the link as well? - should only the link be removed? Any opinions? Joerg ____________________________________________________________________________ Joerg Faschingbauer Hyperwave Research & Development Schloegelgasse 9 mailto:jfasch@hyperwave.com A-8010 Graz ____________________________________________________________________________