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
You don't remove the directory itself; there is no way to do that.