2010-03-28 11 views

Respuesta

6

La respuesta está en la Subversion FAQ:

Hay casos especiales en los que puede ser que desee para destruir toda evidencia de un archivo o cometer. (Tal vez alguien cometió accidentalmente un documento confidencial ). Esto no es tan fácil, porque Subversion está deliberadamente diseñado para nunca perder información. Las revisiones son árboles inmutables que se basan en uno otro. La eliminación de una revisión del historial de provocaría un efecto dominó, creando caos en todas las revisiones posteriores de y posiblemente invalidando todas las copias de trabajo.

El proyecto tiene planes, sin embargo, a implementar algún día un comando svnadmin obliterate que realizar la tarea de forma permanente eliminación de información. (Ver tema 516.)

Mientras tanto, su único recurso es a svnadmin volcar su repositorio, entonces tubo de la dumpfile través svndumpfilter (excluyendo el mal camino) en un comando de carga svnadmin. Consulte capítulo 5 del libro de Subversion para detalles sobre esto.

+0

gracias por eso, aquí hay un buen artículo al respecto: http://blog.projectnibble.org/2008/03/01/subversion-obliterate-the-forgotten-feature/ cheers – Marcin

0

rm -rf en el repositorio por lo general funciona bien.

+0

¿qué pasa con svn interno db? – Marcin

+0

Estaba viviendo bajo la impresión de que svn mantiene su base de datos en algún lugar del repositorio del servidor, por lo que el desmantelamiento del repositorio también lo eliminará. Sin embargo, podría estar equivocado. – che

1

No, no creo que exista.

Si realmente necesita eliminar archivos completamente del historial de SVN, creo que la única manera de hacerlo sería hacer algo como volcar el repositorio, filtrar los archivos que no desea con svndumpfilter, y luego volver a crear el repositorio del vertedero.

¿Por qué quieres hacer esto?

+0

Tengo un proyecto que me gustaría eliminar completamente de mi repositorio. – Marcin

0

esto es cómo hacer esto en Linux:

/>svnadmin dump /path/to/repos > proj.dump 
/>cat proj.dump | svndumpfilter exclude somefolder > cleanproj.dump 
/>service svn stop 
/>BACKUP /path/to/repos/conf /path/to/repos/hooks (all custom configuration for this repository) 
/>DELETE /path/to/repos 
/>svnadmin create /path/to/repos 
/>RESTORE /path/to/repos/conf /path/to/repos/hooks 
/>svnadmin load /path/to/repos < cleanproj.dump 
/>service svn start 

hecho

0

Estoy asumiendo que usted está hablando de varios proyectos en el mismo repositorio:

myrepo/ 
     project1/ 
     project2/ 

Si simplemente quiere que un proyecto 'desaparezca' sin atornillar con el historial del repositorio, simplemente puede ocultar esta ruta si está utilizando una autenticación mecanismo de autenticación que utiliza authz. En otras palabras, usted es no usando 'svn + ssh' para acceder al repositorio.

Digamos que ya tengo un grupo en mi authz llamado 'everyone'. El en mi authz Voy a establecer algo como:

[/project1]: 
    @everyone = 
+0

Quiero tenerlo eliminado no oculto , Gracias. – Marcin

Cuestiones relacionadas