Con el método "prueba-error" y los dumps pudimos identificar facilmente las revisiones conflictivas para proceder a su borrado. Para borrar una revisión intermedia en SVN hay que armarse de paciencia y ser bastante meticuloso.
La solución -tampoco creo que sea la mejor, pero otra vez más funciona- pasó por ir exportando dumps entre las revisiones correctas e ir dejando fuera las malas. Supongamos que queremos dejar fuera la 101 y la 204. Haríamos lo siguiente:
$ svnadmin dump /home/svn/repo/ -r 0:100 > ~/repo-0-100.dump $ svnadmin dump /home/svn/repo/ -r 102:203 --incremental > ~/repo-102-203.dump $ svnadmin dump /home/svn/repo/ -r 205:HEAD --incremental > ~/repo-205-head.dumpOjo con el --incremental, importante hacerlo despues del primer dump para que luego funcionen de forma correcta los loads.
Una vez tenemos los dumps en ficheros procedemos a crear un nuevo repositorio e importarlos con mucho cariño ;)
$ svnadmin create /home/svn/repo2/ $ svnadmin load /home/svn/repo2/ < ~/repo-0-100.dump $ svnadmin load /home/svn/repo2/ < ~/repo-102-203.dump $ svnadmin load /home/svn/repo2/ < ~/repo-205-head.dumpY si todo ha salido bien ya tendremos nuestro nuevo repositorio totalmente limpio de malas hierbas. Ni svn repair ni nada por el estilo, creando dumps ha sido la única forma de recuperar el histórico de cambios que ya dábamos por perdido.
Espero no llevarme más sorpresas derivadas del fallo del servidor, pero está siendo "divertido".