2010-05-24 28 views
5

Borré accidentalmente una carpeta principal dentro del Reprover reproductor Tortoise-SVN. La carpeta de trabajo no se ve afectada.Cómo recuperar desde el Repositorio SVN

¿Cuál es la forma recomendada de revertir eso?
¿Acabo de volver a la versión anterior? ¿O debo hacer un pago y envío a esa versión anterior en una nueva carpeta y eliminar la carpeta anterior?

+0

posible duplicado de [¿Qué es una forma simple de recuperar un archivo en subversión?] (Http://stackoverflow.com/questions/497670/whats-a-simple-way-to-undelete-a-file-in- subversion) – gbjbaanb

Respuesta

8
  1. actualizar su copia de trabajo a la versión de la cabeza
  2. Mira la versión anterior a una nueva carpeta
  3. SVN Copia la carpeta eliminada de la priorVersionFolder a la headVersionFolder
  4. Añadir en el headVersionFolder
  5. SVN Commit el headVersionFolder
+2

Este no es el método recomendado. Usar copy @REV es como puedes rastrear de dónde vienen las cosas. La copia manual de los archivos en el sistema de archivos destruye el historial. –

+1

Si usa "Copia SVN", grabará correctamente la revisión desde la que se realizó la copia. Acabo de probar esto usando exactamente la descripción anterior, y el registro en TortoiseSvn ahora muestra que el directorio fue copiado de la revisión 1 (donde existe). –

1

Puede hacer una copia de la revisión justo antes de la eliminación para volver a agregarla al repositorio.

No es una opción real 'recuperar' en svn.

0
  1. Mira la l versión probada del repositorio a un nuevo directorio.
  2. Usa Tortoise para unirte a la versión antes de tu eliminación.
  3. Compruebe los resultados de la fusión.

Ver the Subversion book para obtener más información.

5

ya que ha mencionado que está utilizando TortoiseSVN:

Hacer un TortoiseSVN | Mostrar Log en el directorio de trabajo. Haga clic con el botón derecho en el registro donde eliminó la carpeta. Elija Revertir cambios de esta revisión.

Eso volverá a crear los archivos que faltan en su carpeta de trabajo. A continuación, puede revertir cualquier OTROS cambios que haya en esa revisión que realmente desee conservar. Una vez que tenga su carpeta de trabajo en el estado que desea, confirme.

No estoy seguro de si este método conserva el historial.

+0

Parece que preserva el historial. – Johnny

0

¿Has probado los documentos de TortoiseSVN?

Esto se describe como Rollback revisions.

Lo que sucede es que restituye la eliminación, por lo que la versión anterior (la anterior a la eliminación) se convierte en la nueva revisión HEAD.La supresión seguirá apareciendo en el registro, pero también describe cómo puede ahorrar su vergüenza (aunque eso es más complicado) :)

0

para los entusiastas de la línea de comandos:

  • en primer lugar encontrar el número de revisión, donde su borrado sucedió:

    svn log -v http://svnserver/path/to/folderContainingDeletedFolder 
    

que usted encuentra que el directorio se ha eliminado en la revisión 999 (por cierto: puede que le resulte más fácil encontrar la revis número de iones con el navegador de repositorios SVN)

  • copiar la carpeta de revisión menos 1

    svn copy http://svnserver/path/to/folderContainingDeletedFolder/[email protected] http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder" 
    

voilà ya está!

Cuestiones relacionadas