Before, if there were no empty directories to delete, xargs would run rm anyway which would cause an error to be display. This replaces ls and xargs with a single invocation of find.
Instead of finding and deleting all files, first use ls-files to delete all the files that git tracks and then delete the remaining empty directories. The result is that files like .gitignore are correctly removed now.
It is reversible so there is no need to be cautious.
The -f flag is not needed since svn-null is not an irreversible operation.
Don't run svn status three times which is rather expensive. Also, instead of sleeping, use a flag (-f) to force the clean. This behavior is similar to git-clean.
svn-null is similar to git-null but for Subversion.