2010-08-30 14 views
5

Estoy tratando de averiguar si necesitamos reducir el número de desarrolladores que tienen derechos de administración svn.¿Se puede recuperar un archivo después de la eliminación de svn?

1 - Si un usuario de subversión borra accidentalmente y confirma la eliminación de un archivo o carpeta, ¿cómo se puede recuperar el archivo?

2 - Si el usuario de subversión tiene derechos de administración de svn, ¿el comportamiento de svn delete ejecutado en el cliente es diferente (más permanente)?

Objetivo: cliente de línea de comando svn bajo Red Hat Enterprise Linux (RHEL) 5,2

+0

Gracias por todas las buenas respuestas. Entiendo todo lo que hace un cliente svn simplemente hace una nueva revisión y todas las revisiones anteriores todavía están accesibles. Mi error fue confundir los derechos de administrador del servidor svn (poder destructivo) con los permisos de usuario svn (no destructivos). Solo asegúrese de que el servidor esté respaldado. :-) –

Respuesta

6

Sí, los datos eliminados se pueden recuperar. Simplemente determine qué revisión eliminó la información y "invierta la fusión" de la confirmación. Algo como esto:

svn merge -c -12345 working_copy_path 
svn commit working_copy_path 

El -12345 significa "revisión de fusión inversa 12345".

Tenga en cuenta que la subversión en sí misma no tiene ningún concepto de usuarios "administrativos". Los usuarios tienen o no tienen permisos de lectura y/o escritura para cualquier ruta dada en el repositorio. También tenga en cuenta que, dependiendo de cómo acceda al repositorio, puede que efectivamente no haya ninguna autorización.

+0

Mark, Gracias por su respuesta clara y concisa y ejemplos proporcionados. Me habían informado mal sobre el concepto de usuarios svn "administrativos" y sus peligros. Parece que el principal peligro proviene de los administradores del servidor svn, no de los usuarios svn. Entiendo todo lo que se puede hacer desde un cliente svn (los derechos de administrador del servidor no están conectados a sus derechos de usuario svn) se puede deshacer señalando una revisión anterior. Gracias de nuevo, –

+0

@Ed: Sin duda, bienvenido. – Mark

0
  • 1 - Todo lo que se puede deshacer usando SVN. Incluso un comando rm (o eliminar) puede deshacerse.
  • 2 - # 1 se aplica para todos los usuarios
0

Sólo obtenga una revisión cuando todavía existía el archivo:

svn checkout -r <revision> <path to repository> 

Ahora puede agregar el archivo de nuevo.

+0

Ver mi comentario en la respuesta de timdev. La fusión inversa del cambio conserva el historial de los archivos en cuestión. – Mark

Cuestiones relacionadas