SVN: qué hacer si se eliminan las carpetas vacías en su directory de trabajo

De acuerdo, estoy trabajando en una pequeña aplicación que elimina recursivamente los directorys vacíos. Lo tengo bajo control de código fuente en Codeplex y uso TortoiseSVN para acceder a él.

Entonces, un día, lo ejecuté en el directory donde tengo todo mi código. Y funcionó bien. Los directorys vacíos habían desaparecido. Pero luego, cuando traté de confirmar los últimos cambios en cualquiera de mis proyectos alojados en Subversion, ¡simplemente no lo hice! Se quejaba de algunas carpetas faltantes o algo así. Aparentemente hay carpetas ocultas llamadas .svn diseminadas en el directory de trabajo (que yo conocía) que contiene, entre otras cosas, directorys vacíos muy cruciales (que yo no conocía). Aparentemente, son tan cruciales que no puedes hacer nada cuando se han ido. Las cosas simplemente dejan de funcionar …

Traté de hacer la Actualización SVN, Limpiar, Actualizar a revisión, Revertir, y así sucesivamente. Nada funcionó. Siempre recibí posts de error de algún tipo. Terminé teniendo que mover la carpeta, crear una nueva, get todo el material de Codeplex nuevamente y luego mover manualmente mis cambios desde la carpeta anterior. Muy tedioso y molesto.

Entonces, ¿qué está pasando allí? ¿Por qué no puede funcionar sin esas carpetas vacías? ¿Y hay alguna forma de arreglarlo si sucede de nuevo?

Las carpetas .svn y sus contenidos (incluso si están vacías) le dicen a Subversion que su copy de trabajo es una copy de trabajo. Borrarlos hace que su directory sea solo un directory. Podrías importar eso en el repository como lo harías con cualquier otro proyecto nuevo, pero luego tendrías proyectos duplicates, así que creo que esta es una idea muy pobre.

Es mejor que sufras el dolor de comprobar una nueva copy de trabajo, copyr tus files modificados y nuevos en eso y comprometerte de nuevo.

No sé lo suficiente sobre la implementación de Subversion para decirte por qué no funciona sin las carpetas vacías, pero esas carpetas .svn tienen metadatos sobre tu copy de trabajo, como la versión base de cada file (por lo que commands como svn st pueden mira lo que has cambiado sin contactar al server).

Si lo estropea, no hay realmente una buena forma de recuperarlo, aparte de comenzar una nueva copy de trabajo desde un process de pago limpio.