I’m not quite sure how this happened, but somehow a completely empty hierarchy of directories has ended up in my repository:
com/ com/companyname/ com/companyname/blah/ com/sun/ com/sun/java/ com/sun/java/jax_rpc_ri/
I think what happened was that these directories did have files in them, but then a developer realized he/she shouldn’t have checked them in in the first place since these are by-products of the build process, so he/she removed the files but somehow the empty directories are left in the repository as ancient relics.
How can I remove this from CVS? The only results I seem to be able to find on google say that there shouldn’t be a need to remove empty directories as CVS won’t keep them around in the first place, and that the -P (prune) options to cvs update should remove them from the working directory – which is zero help if you actually have empty directories in your repository.
A cvs remove and cvs commit doesn’t seem to take care of this situation:
$ cvs remove -Rf com cvs remove: Removing com cvs remove: Removing com/companyname cvs remove: Removing com/companyname/blah cvs remove: Removing com/sun cvs remove: Removing com/sun/java cvs remove: Removing com/sun/java/jax_rpc_ri $ cvs commit com cvs commit: Examining com cvs commit: Examining com/companyname cvs commit: Examining com/companyname/blah cvs commit: Examining com/sun cvs commit: Examining com/sun/java cvs commit: Examining com/sun/java/jax_rpc_ri $ ls -l com total 24 drwxrwxr-x 2 matt matt 4096 Oct 15 14:38 CVS drwxrwxr-x 9 matt matt 4096 Oct 15 14:38 companyname drwxrwxr-x 4 matt matt 4096 Oct 15 14:38 sun
It’s still there!
Does SVN have this weird behavior too?
AFAIK the CVS protocol does not allow to remove directories. You should go to the server console and remove them from the real physical repository.
http://www.network-theory.co.uk/docs/cvsmanual/Removingdirectories.html