2009-04-14 13 views
8

No me di cuenta svn delete eliminaría mi copia local, solo quería que fuera del repositorio. Ahora todos mis archivos se han ido, y tampoco están en el basurero. ¿Hay alguna forma de que pueda recuperarlos?Deshacer la eliminación SVN ./* --force


Debo aclarar, estos archivos no lo hizo en el repositorio. Estaba tratando de deshacerme de algunos archivos basura viejos en el repositorio para poder verificarlos.

Estoy ejecutando Ubuntu en un sistema de archivos ext3. Está bien, sin embargo ... Logré volver a hacer lo que eliminé en aproximadamente 2 horas.

+1

Ouch. ¿Hay una copia de seguridad que cubrió el repositorio SVN o su copia local? ¿Incluso accidentalmente? ¿Puedes recuperar los bloques del disco con una utilidad de recuperación? Sobre todo, intenta no entrar en pánico ... – RBerteig

+2

Hola Mark, solo quería mencionar que acabo de pasar por el mismo problema, aunque utilicé 'svn remove', que pensé que no haría lo mismo que' svn delete' . Incluso había un mensaje que me preguntaba si realmente quería hacer esto, pero este mensaje no indicaba que mis archivos se eliminarían localmente. Creo que deberían hacer que ese mensaje sea más apropiado. –

+1

@Brian: Sí, lo sé ¿eh? ¡Terrible! – mpen

Respuesta

3

Nope.

No, a menos que todavía estén en uso por alguna otra aplicación, lo siento.

+0

Lo que trae en cuenta, ¿alguien más está en este proyecto? Pueden tener una copia. –

+0

No, a netbeans les gusta cerrar archivos cuando se eliminan por alguna razón retardada ... de lo contrario, todavía estaría en la memoria. – mpen

+0

Muchos IDE tienden a reabrirse automáticamente cuando se activan, esto es principalmente para ayudar al proceso de desarrollo si un proceso remoto modificó parte de un archivo para que pueda seguir trabajando y no obtener una versión que esté en el disco y una versión que está en la memoria. –

1

¿No puedes echar un vistazo a lo que estuviste trabajando nuevamente en un nuevo directorio? Si tuvo algún cambio que no fue versionado, usted es SOL, cualquier otra cosa puede volver a la última versión en el repositorio.

+0

Desafortunadamente no. Estaba intentando registrarlos en el repositorio, pero hubo algunos conflictos con algunos archivos más antiguos que se encontraban en el repositorio. Intentaba eliminarlos para poder verificar lo nuevo ... bueno, esto realmente suena. – mpen

+1

este es exactamente el tipo de cosas con las que un DVCS ayuda: usted se compromete localmente antes de fusionarse. supongo que tendrá que dejarlo como experiencia –

+0

@jk. Me tomó un tiempo para entender a DVCS, pero realmente lo estoy disfrutando ahora. – mpen

0

Has utilizado el comando 'svn delete' y has eliminado la copia local. Significa que las versiones originales de los archivos todavía existen en el historial de SVN. 'svn delete' no elimina el historial de archivos del repositorio. Puede recuperar la última versión de la siguiente manera

  1. Compruebe el registro SVN y descubra el número de revisión de 'eliminar operación'.
  2. Use 'svn checkout' para verificar la revisión justo antes de la 'operación de eliminación'. (Por ejemplo, si el número de revisión de la operación de eliminación es de 100, revisar el número de revisión 99) checkout svn --revision
+1

Los cambios locales que realizó no están en el repositorio de revisión y, por lo tanto, no puede recuperarlos. –

+0

acabo de ver el comentario "Debo aclarar, estos archivos nunca se incluyeron en el repositorio". De alguna manera no me di cuenta cuando escribí la respuesta –

0

Dependiendo de su cliente SVN que debe ser capaz de obtener estos archivos desde una revisión anterior utilizando "Mostrar log" como su llamada en la tortuga ...

Sólo tiene que abrir el registro de encontrar una revisión en la que el archivo estaba todavía allí y 'recuperar esta revisión'

0

Si es menor de ventanas, se puede comprobar la (parcialmente) nombre de herramienta gratuita zero assumption recovery. ¡Realmente ayuda cuando eliminas archivos en Windows!

O bien, si lo tiene habilitado y está usando vista, puede verificar las "versiones anteriores" de su carpeta en las propiedades de la misma.

Espero que ayude! buena suerte.

0

Ejecuta el comando svn log y obtiene el número de revisión de la eliminación infeliz. continuación, ejecute svn merge -r2572: 2571 svn: // $ PATH_WHERE_YOU_DELETED_NUMBER_WAS_ON_SVN_SERVER & LOCAL_PATH_WHERE_TO_SAVE_FILE

donde -r son los números de revisión

ejemplo fusión -r2572: 2571 svn: //www.jane16.com /var/opt/svn/mypoject/Start.java C:/ecplipse/workspace/myporject/Start.java

1

ir al directorio de archivos,

svn revert "filename" 

restaurará cualquier archivo eliminado localmente, todavía no aceptada, pero ya en la versión controlada.

+0

"nunca lo hice en el repositorio" - es decir, no la versión controlada – mpen

Cuestiones relacionadas