¿Hay alguna manera de hacer automáticamente la versión registrada de un directory idéntico al mío?

He realizado una gran cantidad de cambios en un directory versionado. He cambiado el nombre, agregado, eliminado y he hecho mucha limpieza (es un directory de resources). ¿Hay alguna manera de evitar el uso de svn delete y svn add para garantizar que se agreguen o eliminen los files correctos, o existe una forma de automatizar la adición / eliminación de files del control de versiones (es decir, un solo command)? eso hace que todos los files que existen en el directory tengan versiones, y hace que los files ausentes no sean versionados?

Si estás en un bash, escribir un script que derive su list de tareas a partir de la salida del command de status de svn es bastante fácil:

 svn st | grep '^\?' | awk '{print \$2}' | xargs svn add svn st | grep '^\!' | awk '{print \$2}' | xargs svn rm 

(Fuente: http://www.plexusweb.com/staff/travis/blog/post/267/Batch-addremove-files-to-Subversion )

Sin embargo, eso manejará todos los cambios ocurridos como agregar o eliminar files; reconocer los files renombrados es un problema bastante difícil, ya que tal herramienta debería saber cómo get la última versión de cada file mediante subversión que parece borrada, y luego compararla con cada uno de los "nuevos" files en su directory de trabajo, y tal vez incluso considere pequeños cambios que podría haber hecho (lo que significa que la comparación por valor de hash no sería posible) – ¡de hecho una tarea desafiante!