svn - tortoise - ¿Cómo puedo eliminar revisiones antiguas en Subversion?
tortoise svn rollback (4)
¿Cómo puedo eliminar revisiones antiguas de mi repositorio de subversión de desarrollo? Tengo un sandbox de subversión en el que tengo muchos proyectos de prueba, binarios, etc. Me gustaría podar la historia de vez en cuando.
Aquí está la respuesta oficial:
Hay casos especiales en los que es posible que desee destruir toda la evidencia de un archivo o confirmación. (Tal vez alguien accidentalmente haya confiado un documento confidencial.) Esto no es tan fácil, porque Subversion está diseñada deliberadamente para nunca perder información. Las revisiones son árboles inmutables que se construyen unos sobre otros. Eliminar una revisión de la historia provocaría un efecto dominó, creando caos en todas las revisiones posteriores y posiblemente invalidando todas las copias de trabajo.
El proyecto tiene planes, sin embargo, de implementar algún día un comando svnadmin obliterate que logre la tarea de eliminar permanentemente la información. (Ver el problema 516.)
Mientras tanto, tu único recurso es svnadmin volcar tu repositorio, luego canalizar el archivo dump a través de svndumpfilter (excluyendo la ruta incorrecta) en un comando de carga svnadmin. Vea el capítulo 5 del libro de Subversion para más detalles sobre esto.
Encontrado aquí: http://subversion.tigris.org/faq.html#removal
Jon - no estamos de acuerdo. Hay ocasiones en que es apropiado podar datos "muy antiguos" que estamos seguros ya no se necesitarán porque están respaldados en otros medios. Tomemos como ejemplo, un sistema que rastrea versiones de archivos de configuración automáticamente. En algún momento, tiene sentido decir: "Sabemos que ya no necesitamos tener la configuración de la forma en que parecía hace un año para estar en línea. Tener esa información en algún formato fuera de línea está bien, pero dejándola on-line en los sistemas de producción no es algo bueno ". Ese es el ejemplo perfecto de cuándo es apropiado poder archivar fácilmente los datos muy antiguos y luego eliminarlos del repositorio. He encontrado una forma de resolver el problema, pero creo que es un truco real que tengo que volver a reproducir efectivamente la historia desde un cierto punto en el tiempo a través de todas las revisiones para crear un nuevo repositorio para poder reemplazar el anterior.
Puedes usar svndumpfilter .
Sin embargo, no es algo recomendado. Se supone que los repositorios son (principalmente) bases de datos de solo anexión. Alguna cantidad de mutación de datos es tolerable gracias a la naturaleza centralizada de la base de datos, pero no se supone que sea una operación de rutina.
Probablemente deberías usar un repositorio separado para cada proyecto en lugar de un repositorio de bolsas que querrás podar de vez en cuando.
Realmente no quieres podar la historia, de esa manera yace la locura.
Es posible que desee eliminar las ramas antiguas para que no aparezcan en su navegador svn, pero eso es tan sencillo como un ''svn rm''. Las revisiones permanecen en el sistema de control de versiones.